mybatis实现MySQL分页显示

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:济南]

猜你喜欢

转载自blog.csdn.net/qq_40392686/article/details/82763151