Mybatis 分页查询(实战版)

发布于:2022-11-08 ⋅ 阅读:(280) ⋅ 点赞:(0)

Mybatis 分页查询

提示:本次基于springboot4.4.1,SQL limit实现的



前言

例如:使用sqL LIMIT 实现条件查询

提示:以下是本篇文章正文内容,下面案例可供参考

一、建立实体类(使用了lombok)

示例:MajorNumber.java //自己可以根据字段建立数据表

@Data
public class MajorNumber implements Serializable {


    @ApiModelProperty(value = "id")
    private Integer id;

    private Integer aiteMajorSoftware;

    private Integer aiteMajorCsot;

    private Integer aiteMajorIt;

    private Integer aiteMajorAi;

    private Integer sort;

    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date aite_created;

    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date aite_modified;

    @TableLogic  //逻辑删除
    private Integer isDeleted;
    
}

二、Controller层

代码如下(示例):Result 是统一结果返回类 @Api 用的是swagger2;
请求是post

@Api(tags = "工作室数据统计接口")
@CrossOrigin
@RestController
@RequestMapping("/MemberNumberController")
public class MemberNumberController {

    @Autowired
    private MajorNumberService majorNumberService;


    

    //查询分页
    @ApiOperation("查询分页")
    @PostMapping("findPage/{currPage}/{pageSize}")
    public Result findPage (@PathVariable int currPage,@PathVariable int pageSize){

        List<MajorNumber> majorNumbers = majorNumberService.queryMajorBySql(currPage,pageSize);
        return Result.ok(majorNumbers);
    }
    
}

三、service层及serviceImpl层

代码如下(示例):

/**
 * Created with IntelliJ IDEA.
 *
 * @Author: zhangliang
 * @Date: 2022/11/08/11:54
 * @Description:  专业数据
 */
@Transactional
public interface MajorNumberService extends IService<MajorNumber> {


    List<MajorNumber> queryMajorBySql(int currPage, int pageSize);
}

@Service
public class MajorNumberServiceImpl extends ServiceImpl<MajorNumberMapper,MajorNumber> implements MajorNumberService {

    @Autowired
    private MajorNumberMapper majorNumberMapper;

    @Override
    public List<MajorNumber> queryMajorBySql(int currPage, int pageSize) {
        Map<String, Object> data = new HashMap<>();
        data.put("currIndex", (currPage-1)*pageSize);
        data.put("pageSize", pageSize);
        return majorNumberMapper.queryMajorBySql(data);
    }
}

四、 mapper 及mapper.xml

public interface MajorNumberMapper extends BaseMapper<MajorNumber>{
    
    List<MajorNumber> queryMajorBySql(Map<String, Object> data);

}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="space.aite.aitestudio_zll.mapper.MajorNumberMapper">
    <resultMap id="MajorNumber" type="space.aite.aitestudio_zll.entity.MajorNumber">
        <id property="id" column="id"/>
        <!-- <result property="实体类属性" column="数据表字段名"/> -->
<!--        <result property="id" column="id"/>-->
        <result property="aiteMajorSoftware" column="aiteMajorSoftware"/>
        <result property="aiteMajorCsot" column="aiteMajorCsot"/>
        <result property="aiteMajorIt" column="aiteMajorIt"/>
        <result property="aiteMajorAi" column="aiteMajorAi"/>
        <result property="studioMemberWebSum" column="studioMemberWebSum"/>
        <result property="sort" column="sort"/>
        <result property="aiteCreated" column="aiteCreated"/>
        <result property="aiteModified" column="aiteModified"/>
        <result property="isDeleted" column="isDeleted"/>
    </resultMap>

    <select id="queryMajorBySql" resultType="space.aite.aitestudio_zll.entity.MajorNumber" resultMap="MajorNumber">
        select *
#             id,aiteMajorSoftware,aiteMajorCsot,aiteMajorIt
             from aite_studio.aite_MajorNumber limit #{currIndex} , #{pageSize};
    </select>
</mapper>

五、测试(swagger 2测试)测试成功

在这里插入图片描述


总结

用时1h (现写加上写博客),好久没这样写了,这是在mybatis-plus 条件下实现的sql 查询分页,自己也对spring 加深了理解,分享给其他同学一起学习。