myBatis 分页查询

为什么分页

  • 减少数据处理量

使用limit分页

语法:SELECT* from user limit startIndex ,pagesize;
     SELECT * from user limit 3; -->#[0,n]

怎么实现

  1. 接口
    方式一
    //分页查询
    List<User> limitSelect(Map<String,Integer> map);

方式二

    //分页查询2
    List<User> RowBounds();
  1. 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();
    }
posted @   小幼虫虫  阅读(132)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示