分页
分页的目的:减少数据的处理量
分页方法
1.limit分页 2.RowBounds()方法 3.分页插件工具
核心语法:
selcect * from mybatis.user limit startindex,pagesize;
select * from mybatis.user limit 3; #[0,n]
分页1,2对比分析:
接口UserMapper分析:
//分页1
List<user> getUserByLimit(Map<String,Integer> map);
//分页2
List<user> getUserByRowBounds();
UserMapper.xml分析
<!--分页1-->
<select id="getUserByLimit" parameterType="map" resultMap="UserMap">
select * from mybatis.user limit #{startIndex},#{pageSize}
</select>
<!--分页2-->
<select id="getUserByRowBounds" resultMap="UserMap">
select * from mybatis.user
</select>
test分析
//分页1 测试
@Test
public void getUserByLimit(){
SqlSession sqlSession=MybatisUtils.getSqlSession();
UserMapper mapper =sqlSession.getMapper(UserMapper.class);
HashMap<String,Integer> map=new HashMap<String, Integer>();
map.put("startIndex",1);
map.put("pageSize",2);
List<user> userList=mapper.getUserByLimit(map);
for(user user:userList){
System.out.println(user);
}
sqlSession.close();
}
//分页2 测试
@Test
public void getUserByRowBounds(){
SqlSession sqlSession=MybatisUtils.getSqlSession();
UserMapper mapper=sqlSession.getMapper(UserMapper.class);
//RowBounds实现
RowBounds rowBounds=new RowBounds(1,2);
//通过java代码层面实现分页
List<user> userList=sqlSession.selectList("com.wang.mapper.UserMapper.getUserByRowBounds",null,rowBounds);
for(user user:userList){
System.out.println(user);
}
sqlSession.close();
}
分页方法1和2分析:
方法1主要是sql语句采用limit语法实现分页(startIndex,pageSize)两个参数;
方法2主要是新建RowBounds对象,通过sqlSession调用selectList()方法,通过绝对路径的访问进行实现。
selectList()方法中的参数解释:(字符串(实现分页方法的绝对路径),对象,rowBounds(默认))
第三种分页方法
利用分页工具:pagehelper;https://pagehelper.github.io/docs/howtouse/