SQL语句
select * from table_name limit startNum,Size
这句话的意思是从第startNum个数据开始(索引从0开始),总共显示Size个。
注意,当为第一页时,startNum为0,当为第二页时,startNum为pageSize,所以startNum=(pageNum-1)*pageSize,由于SQL语句中,?不允许在关键字前后进行数学运算,所以,需要在代码中计算完成。
代码如下
int pageSize = 2;
int pageNum = 1;
Map<String,Integer> map1 = new HashMap<>();
map1.put("pageSize",pageSize);
map1.put("pageStart", pageSize*(pageNum-1));
List<Flower> list = session.selectList("com.leesun.mapper.FlowerMapper.page",map1);
System.out.println(list);
mapper.xml文件如下
<select id="page" resultType="com.leesun.pojo.Flower" parameterType="map">
select * from flower limit #{pageStart},#{pageSize}
</select>
结果如下:
DEBUG 2018-09-18 07:50:02 第139行 ==> Preparing: select * from flower limit ?,?
DEBUG 2018-09-18 07:50:02 第139行 ==> Parameters: 0(Integer), 2(Integer)
DEBUG 2018-09-18 07:50:02 第139行 <== Total: 2
[id:1 name:樱花 price:2.5 production:武汉, id:2 name:荷花 price:3.4 production:济南]