MyBatis笔记-----分页的实现
方式一:使用limit分页(推荐)
sql语法:
select * from table_name limit startIndext,pageSize;
table_name:表名
startIndext:起始位置(从0开始)
pageSize:查询个数
实例:
user表内容
select * from user limit 1,2;
查询user表中起始坐标为1开始的两个数据
ps:如果limit后面只有一个参数,则默认为起始坐标从0开始
使用Mybatis实现分类,核心关键是sql
1.接口
public interface UserMapper {
//使用limit实现分页
List<User> getUserByLimit(Map<String,Integer> map);
}
2.Mapper配置文件
<mapper namespace="com.xushuyi.dao.UserMapper">
<!-- 使用limit实现分页-->
<select id="getUserByLimit" resultType="User" parameterType="map">
select * from user limit #{startIndex},#{pageSize}
</select>
</mapper>
3.测试
//使用limit实现分页
@Test
public void getUserByLimit(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
Map<String,Integer> map=new HashMap<String, Integer>();
map.put("startIndex",0);
map.put("pageSize",2);
List<User> userByLimit = mapper.getUserByLimit(map);
for (User user:userByLimit){
System.out.println(user);
}
sqlSession.close();
}
方式二:RowBounds分页
通过java代码层面实现分类
1.接口
public interface UserMapper {
//使用RowBounds实现分页
List<User> getUserByRowBounds();
}
2.Mapper配置文件
<mapper namespace="com.xushuyi.dao.UserMapper">
<!-- 使用RowBounds实现分页-->
<select id="getUserByRowBounds" resultType="User">
select * from user
</select>
</mapper>
3.测试
@Test
public void getUserByRowBound(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
//RowBounds实现
RowBounds rowBounds=new RowBounds(1,3);
//通过java代码层面实现分页
List<User> userList=sqlSession.selectList("com.xushuyi.dao.UserMapper.getUserByRowBounds",null,rowBounds);
for(User user:userList){
System.out.println(user);
}
sqlSession.close();
}
方式三:使用分页插件
https://pagehelper.github.io/docs/howtouse/