1. 程式人生 > >mybatis實現MySQL分頁顯示

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.bjsxt.mapper.FlowerMapper.page",map1);
System.out.println(list);

mapper.xml檔案如下

<select id="page" resultType="com.bjsxt.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:濟南]