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 加深了理解,分享给其他同学一起学习。