springboot+mybatis+thymeleaf+分页 整合
1、第一步先导包以及编写分页配置
分页依赖
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.3</version>
</dependency>
分页配置(application.yml)
pagehelper:
# 数据库方言 mysql
helper-dialect: mysql
# 分页参数合理化
# 默认是false。
# 启用合理化时,如果pageNum<1会查询第一页,如果pageNum>pages会查询最后一页;
# 禁用合理化时,如果pageNum<1或pageNum>pages会返回空数据
reasonable: true
# 支持通过 Mapper 接口参数来传递分页参数
# 默认值 false
support-methods-arguments: true
# 为了支持startPage(Object params)方法,增加了该参数来配置参数映射,
# 用于从对象中根据属性名取值
# 默认值为 countSql
2、第二步编写mapper接口
/**
* 分页(带条件)
* @return
*/
List<Goods> findPages(Goods goods);
/**
* 分页(不带条件)
* @return
*/
List<Goods> findPage();
3、第三步编写service接口
/**
* 分页(带条件)
* @return
*/
PageInfo findPages(Goods goods,int pageIndex,int pageSize);
/**
* 分页(不带条件)
* @return
*/
PageInfo findPage(int pageIndex,int pageSize);
- 注意返回值不再是List而是PageInfo
4、第四步编写serviceImpl
/**
* 分页(带条件)
* @return
*/
@Override
public PageInfo findPages(Goods goods, int pageIndex, int pageSize) {
PageHelper.startPage(pageIndex, pageSize);
List<Goods> goods1 = goodsMapper.findPages(goods);
PageInfo<Goods> page = new PageInfo<>(goods1);
return page;
}
/**
* 分页(不带条件)
* @return
*/
@Override
public PageInfo findPage(int pageIndex, int pageSize) {
PageHelper.startPage(pageIndex, pageSize);
List<Goods> goods = goodsMapper.findPage();
PageInfo<Goods> page = new PageInfo<>(goods);
return page;
}
5、第五步编写sql(mapper.xml)
<!--分页(带条件)-->
<select id="findPages" resultType="goods">
select * from goods
<where>
<if test="goodsName!=null">
and goodsName like concat('%',#{goodsName},'%')
</if>
<if test="remark!=null">
and remark like concat('%',#{remark},'%')
</if>
</where>
</select>
<!--分页(不带条件)-->
<select id="findPage" resultType="goods">
select * from goods
</select>
6、第六步编写视图层(controller)
/*分页(带条件)*/
@RequestMapping("/findPages")
public String findAlls(Model model,@RequestParam(value = "pageIndex", defaultValue = "1")int pageIndex,
@RequestParam(value = "pageSize", defaultValue = "3",required = false)int pageSize,Goods goods) {
PageInfo page = goodsService.findPages(goods