文章目錄
-
-
-
- 1、Limit實作分頁
- 2、RowBounds分頁(不建議使用)
- 3、MyBatis分頁插件PageHelper(了解即可)
-
-
1、Limit實作分頁
- sql語句
SELECT * from user limit startIndex,pageSize
- 簡單示例:
- user表
- 查詢一:從第一行資料【 startIndex:0】開始,查詢兩行【pageSize:2】資料
- 查詢二:從第三行資料【 startIndex:2】開始,查詢兩行【pageSize:2】資料
- 查詢三:隻有一個參數表示從第一行資料開始,查詢三行【pageSize:3】資料
- 使用Mybatis實作分頁,核心SQL
- 接口
public interface UserMapper { //分頁 List<User> getUserByLimit(Map<String,Integer> map); }
- Mapper.xml
<!--分頁--> <select id="getUserByLimit" parameterType="map" resultType="包名.User"> select * from user limit #{startIndex},#{pageSize}; </select>
- 測試
public class UserMapperTest { @Test public void getUserByLimit() { SqlSession sqlSession = MybatisUtils.getSqlSession(); UserMapper mapper = sqlSession.getMapper(UserMapper.class); HashMap<String, Integer> map = new HashMap<>(); map.put("startIndex", 0); map.put("pageSize", 2); List<User> userList = mapper.getUserByLimit(map); for (User user : userList) { System.out.println(user); } sqlSession.close(); } }
- 測試結果
- 接口
2、RowBounds分頁(不建議使用)
- 不使用SQL實作分頁,通過java代碼層面實作分頁
- 接口
//分頁2:RowBounds List<User> getUserByRowBounds();
- Mapper.xml
<!--分頁:RowBounds--> <select id="getUserByRowBounds" resultMap="UserMap"> select * from user </select>
- 測試
@Test //分頁2:RowBounds public void getUserByRowBounds(){ SqlSession sqlSession = MybatisUtils.getSqlSession(); //RowBounds實作 RowBounds rowBounds = new RowBounds(0, 2); //通過java代碼層面實作分頁 List<User> userList = sqlSession.selectList("com.ping.dao.UserMapper.getUserByRowBounds",null,rowBounds); for (User user : userList) { System.out.println(user); } sqlSession.close(); }
- 測試結果
- 接口
3、MyBatis分頁插件PageHelper(了解即可)
詳細文檔:https://pagehelper.github.io/