mybatis中使用limit實現分頁,以及Map的用法
阿新 • • 發佈:2021-01-24
1、limit實現分頁
limit是sql中存在的,可以實現分頁查詢,其使用方法為:
select * from table1 limit startIndex,pageStze
--這裡的startIndex與pageSize在使用時用整數代替
顧名思義,limit需要兩個引數:startIndex是標識頁面的其實下標的,就是從第多少條記錄開始分頁顯示;pageSize是每一個頁面顯示的記錄的條數。比如:
select * from table1 limit 3,5
就表示從表中第三條記錄開始,每五條記錄作為一頁來顯示。mybatis中可以傳入這兩個引數。
2、Map的用法
使用Map要先匯入util包(當然IDEA可以自動匯入)
Map的核心是鍵值對,直接用了就懂了,上程式碼:
HashMap<String,Integer> map = new HashMap<String,Integer>();
map.put("startIndex",0);
map.put("pageSize",3);
建立一個Map的例項, HashMap<String,Integer> 是定義鍵值對的“結構”,String就是key(鍵)的型別,Integer就是這個key的value(值)的型別,當然這個可以自己設定。然後就可呼叫Map例項的方法 put() 來存放一個鍵值對了,當然一個Map例項可存放多個鍵值對。利用Map傳參較為方便。
3、mybatis中實現分頁查詢
這跟之前的查詢也沒啥區別,只是在sql語句上使用了limit。上程式碼:
編寫介面中的方法
//分頁測試
List<User> getUserByLimit(Map<String,Integer> map);
在配置中“實現”這個方法(注意這裡取map中的引數是#{鍵的名字})
<!--使用map來傳參-->
<select id="getUserByLimit" parameterType="map" resultType="User" >
<!--limit後面跟兩個引數,第一個引數是顯示分頁的起始下標,第二個是頁面的大小-->
select * from mybatis.user limit #{startIndex},#{pageSize};
</select>
測試
@Test
public void limitTest00(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserDao mapper = sqlSession.getMapper(UserDao.class);
//建立map來存放參數,map就是鍵值對,定義時HashMap<String,Integer>轉下一行
//String就是key的型別,Integer就是這個健的值的型別,當然這兩個型別可自行設定
HashMap<String,Integer> map = new HashMap<String,Integer>();
map.put("startIndex",0);
map.put("pageSize",3);
List<User> usersByPage = mapper.getUserByLimit(map);
for(User user:usersByPage){
System.out.println(user.getId());
}
}