分页
分页要点:
-
要设置传入的参数(page,pagesize) 【 page(页码),pageSize(每页显示的条数)】
- page:页数(第几页)
- size:显示个数(一页显示多少条信息)
- 之间的关系是:start=(page-1)*pagesize 【start:从第几个数据开始显示】 对应 limit:start,pagesize 注意:start从0开始
-
当没有传入参数时,要设定默认值:
- page=1 (第一页)
- pagesize=10 (一页显示10条信息,也可以设定其他值)
-
用户输入的是 page 和 pageSize,我们要用代码将 page 转化成mysql的语句中的 limit 的 start值。
在接口中进行(HomeController)
- 默认值设置
- 参数值的转换处理(page-----start)
@GetMapping("/goods")
public Response<List<Goods>> getGoods(@RequestParam(name = "page", defaultValue = "1") Integer pagenum,
@RequestParam(name = "size",defaultValue = "1") Integer size)
{
Integer page = (pagenum-1)*size; //转换
List<Goods> goodsList = goodsService.getGoods(page, size);
return Response.success(goodsList);
}
- 写Mapper接口 (GoodsMapper)
public interface GoodsMapper extends BaseMapper<Goods> {
List<Goods> getGoods(@Param("page") Integer page,
@Param("size") Integer size);
}
- 写自定义sql,在sql中设置分页 (goodsMapper.xml)
<?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="com.lzp.liugiveproject.model.mapper.GoodsMapper">
<!--上面是头文件-->
<select id="getGoods" resultType="com.lzp.liugiveproject.model.entity.Goods">
select * from lgp_goods limit #{page},#{size}
</select>
</mapper>
- 写service接口(GoodsService)
public interface GoodsService {
List<Goods> getGoods(Integer page, Integer size);
}
- 写service接口实现类(GoodsServiceImpl)
@Service("GoodsService")
public class GoodsServiceImpl implements GoodsService {
@Resource
private GoodsMapper goodsMapper;
//实例化配置文件类
@Autowired
private Image image;
@Override
public List<Goods> getGoods(Integer page, Integer size) {
List<Goods> goodsLsit = goodsMapper.getGoods(page, size);
return goodsLsit;
}
}