myBatis 分页查询
为什么分页
- 减少数据处理量
使用limit分页
语法:SELECT* from user limit startIndex ,pagesize;
SELECT * from user limit 3; -->#[0,n]
怎么实现
- 接口
方式一
//分页查询
List<User> limitSelect(Map<String,Integer> map);
方式二
//分页查询2
List<User> RowBounds();
- mapper.xml
方式一
<!--结果集映射-->
<resultMap id="UserMap" type="user">
<!--column数据库中的字段, property实体类中的属性-->
<result column="id" property="id"/>
<result column="name" property="name"/>
<result column="pwd" property="password"/>
</resultMap>
<select id="limitSelect" resultMap="UserMap" parameterType="map">
select * from myBatis.user limit #{startIndex},#{pageSize};
</select>
方式二
<!--分页2rowBounds-->
<select id="RowBounds" resultMap="UserMap" >
select * from myBatis.user;
</select>
3测试
方式一
@Test
public void limitSelect() {
SqlSession sqlSession = myBatisUtils.getSqlSession();
UserDao mapper = sqlSession.getMapper(UserDao.class);
Map<String, Integer> map = new HashMap<>();
map.put("startIndex", 0);
map.put("pageSize", 1);
List<User> result=mapper.limitSelect(map);
for (User user : result) {
System.out.println(user);
}
sqlSession.close();
}
方式二
@Test
public void rowBounds() {
SqlSession sqlSession = myBatisUtils.getSqlSession();
//rowBounds实现分页
RowBounds rowBounds = new RowBounds(1, 2);
//通过java代码层面实现分页
List<User> userList = sqlSession.selectList("dao.UserDao.RowBounds",null,rowBounds);
for (User user : userList) {
System.out.println(user);
}
sqlSession.close();
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人