1.sql语句
#x代表从第条数据开始查,起始为0 #y代表一共查询几条数据 #如果只给定一个参数,默认从0开始查,查询给定的参数行数据 select * from Table limit x,y
2.Mybatis实现分页
-
接口
//分页查询用户列表 List<User> getUserByLimit(Map<String,Integer> map);
-
Mapper.xml
<select id="getUserByLimit" parameterType="map" resultMap="UserMap"> select * from user limit #{startIndex},#{pageSize} </select>
-
测试
@Test public void getUserByLimit() { //借用mybatis工具类,获取sqlSession SqlSession sqlSession = MybatisUtils.getSqlSession(); //通过接口.class获得mapper,从而调用方法 UserMapper mapper = sqlSession.getMapper(UserMapper.class); Map<String, Integer> map = new HashMap<>(); map.put("startIndex",0); map.put("pageSize",5); List<User> userList = mapper.getUserByLimit(map); for (User user : userList) { System.out.println(user); } //关闭资源 sqlSession.close(); }
3.RowBounds分页类(面向对象)
不用sql实现分页,不建议使用
-
接口
List<User> getUserByRowBounds();
-
mapper.xml
<select id="getUserByRowBounds" resultMap="UserMap"> select * from user </select>
-
测试
@Test public void getUserByRowBounds() { //借用mybatis工具类,获取sqlSession SqlSession sqlSession = MybatisUtils.getSqlSession(); //RowBounds实现分页 RowBounds rowBounds = new RowBounds(1, 2);//从下标为1,即第二行开始查询,查询2条数据 //直接sqlSession点增删查改 //通过Java代码层面实现分页 List<User> userList = sqlSession.selectList("com.likea.mapper.UserMapper.getUserByRowBounds",null,rowBounds); for (User user : userList) { System.out.println(user); } //关闭资源 sqlSession.close(); }
4.分页插件
mybatis-plus:分页插件,简化增删改查,不使用也可以
项目小不建议使用,面向百度编程