【Mybatis 框架(自学)】Day05--2022/3/13
分页
为什么要分页
- 为了减少数据的处理量,所以采用分页功能
使用Limit分页
SELECT * FROM 表明 limit startIndex,pageSize;
//接口实现类定义分页查询方法
public interface StudentMapper{
List<Student> selectStudentByLimit(Map<String,Object> map);
}
<!--Mapper映射-->
<select id="selectStudentByLimit" parameterType="map" resultType="Student">
select * from tbstudent limit #{startIndex},#{pageSize}
</select>
//Junit测试
@Test
public void selectStudentByLimit(){
SqlSession sqlSession = MybatisUtils.getConnection();
StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);
try{
Map<String,Object> map = new HashMap<>();
map.put("startIndex",0);
map.put("pageSize",3)
List<Student> studentList = studentMapper.selectStudentByLimit(map);
for(Student student:studentList){
sout(student);
}
}catch(Exception e){
e.prinStackTrace();
}finally{
closeSqlSession(sqlSession)
}
}
RowBounds分页
select * from 表明 (因为此查询操作直接面向对象来生成,不再使用Sql实现分页)
//接口实现类
public interface StudentMapper{
List<Student> selectStudentByRowBoudns();
}
<!--Mapper映射-->
<select id="selectStudentByRowBoudns" resultType="Student">
select * from 表明
</select>
//Junit测试
public void selectStudentByRowBoudns(){
//导入工具类
MybatisUtils mybatisUtils = new MybatisUtils();
//建立sqlSession
SqlSession sqlSession = mybatisUtils.getConnection();
//新建接口实现类对象
StudentMapper studnetMapper = sqlSession.getMapper(StudentMapper.class);
try{
//重点:通过对象实现分页
RowBoudns rowBoudns = new RowBounds(1,3)//从第一个开始到第三个结束
List<Student> studentList = sqlSession.selectList("com.xxxx.方法 名",null,rowBoudns);
/*
关于opensession自带sql语句的参数
selectList("方法名",Object,RowBounds);
*/
studentList.for
sout(student);
}catch(Exception e){
e.printStackTrace();
}finally{
closeSqlSession(sqlSession);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?