Spring-boot中MyBatis-Plus实现分页操作
spring-boot
spring-projects/spring-boot: 是一个用于简化Spring应用开发的框架。适合用于需要快速开发企业级Java应用的项目。特点是可以提供自动配置、独立运行和内置的Tomcat服务器,简化Spring应用的构建和部署。
项目地址:https://gitcode.com/gh_mirrors/sp/spring-boot
免费下载资源
·
官网上有个比较详细的demo,下面是地址。
https://git.oschina.net/baomidou/mybatisplus-spring-boot
首先,新建一个分页工具类
public class PageUtils implements Serializable {
private static final long serialVersionUID = 1L;
//总记录数
private int totalCount;
//每页记录数
private int pageSize;
//总页数
private int totalPage;
//当前页数
private int currPage;
//列表数据
private List<?> list;
/**
* 分页
* @param list 列表数据
* @param totalCount 总记录数
* @param pageSize 每页记录数
* @param currPage 当前页数
*/
public PageUtils(List<?> list, int totalCount, int pageSize, int currPage) {
this.list = list;
this.totalCount = totalCount;
this.pageSize = pageSize;
this.currPage = currPage;
this.totalPage = (int)Math.ceil((double)totalCount/pageSize);
}
/**
* 分页
*/
public PageUtils(Page<?> page) {
this.list = page.getRecords();
this.totalCount = page.getTotal();
this.pageSize = page.getSize();
this.currPage = page.getCurrent();
this.totalPage = page.getPages();
}
public int getTotalCount() {
return totalCount;
}
public void setTotalCount(int totalCount) {
this.totalCount = totalCount;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getTotalPage() {
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
public int getCurrPage() {
return currPage;
}
public void setCurrPage(int currPage) {
this.currPage = currPage;
}
public List<?> getList() {
return list;
}
public void setList(List<?> list) {
this.list = list;
}
}
然后在相关类的Service层实现操作,举个例子
public PageUtils findBatchPage(Map<String, Object> params) {
String roleName = (String)params.get("roleName");
Integer createUserId = (Integer)params.get("creator_id");
Page<RoleEntity> page = this.selectPage(
new Query<RoleEntity>(params).getPage(),
new EntityWrapper<RoleEntity>()
.like(StringUtils.isNotBlank(roleName),"role_name", roleName)
.eq(createUserId != null,"creator_id", createUserId)
);
return new PageUtils(page);
}
这里的参数是个map,从map中获取key值为roleName,和creator_id的参数value值,然后利用mybatisp'lus的Page类,新建一个页面。
其中,new Query是获取页面相关参数。EntityWrapper是设置相关的查询条件,like表示模糊查询,eq表示等值查询,然后返回一个Page。
由于map可以理解成一个数组,所以理论上你可以放许多查询条件。
这样的好处较原先的mybatis来讲,不用写xml映射的sql语句。完全解放出来。涵盖了一切查询条件,不用重复工作。利用HashMap,实际上也是有不足的,比如你无法动态的去查找,你必须在这个Service层把每一个查询条件手动的去列上去。应该是存在一种动态的查询方法的,将key值与数据表中的属性名相互绑定,一一对应,这样就动态了。
GitHub 加速计划 / sp / spring-boot
73.97 K
40.4 K
下载
spring-projects/spring-boot: 是一个用于简化Spring应用开发的框架。适合用于需要快速开发企业级Java应用的项目。特点是可以提供自动配置、独立运行和内置的Tomcat服务器,简化Spring应用的构建和部署。
最近提交(Master分支:1 个月前 )
fdf24c6c
Closes gh-42976
4 天前
3c42ba8c
* pr/42974:
Fix copyright year of updated file
Polish
Closes gh-42974
4 天前
更多推荐
已为社区贡献3条内容
所有评论(0)