【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);
    }
     
}
posted @   VVS,冷漠的心  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?

囚鸟该如何超越今生?

点击右上角即可分享
微信分享提示