zoukankan      html  css  js  c++  java
  • Mybatis基础,limit分页,和RowsBounds分页,分页插件

    前言:Mybatis是一个面向关系的轻量级框架,

       Hiberbate是基于ORM(对象关系数据库映射)面向对象的框架,JPA系列相似(本质就是里面有很多类,每个类都能有功能,最后集成为一个框架)

    为什么要分页

      减少数据的处理量

    运用sql(limit)语句实现分页

    select * from mybatis.user limit 2,2;

    一,使用Mybatis实现分页,核心SQL(面向关系)

      接口 

        //利用limit实现分页
        List<User> getUserByLimit(Map<String,Integer> map);

      Mapper.xml

        <!--//分页-->
        <select id="getUserByLimit" parameterType="map" resultMap="userMap">
            select * from mybatis.user limit #{startIndex},#{pageSize};
        </select>c

      测试

        @Test
        public void limitTest(){
            SqlSession sqlSession = MybatisUtils.getSqlSession();
            UserMapper mapper = sqlSession.getMapper(UserMapper.class);
            HashMap<String, Integer> map = new HashMap<String, Integer>();
            map.put("startIndex",2);
            map.put("pageSize",2);
            List<User> userList = mapper.getUserByLimit(map);
            for (User user : userList) {
                System.out.println(user);
            }
    
            sqlSession.close();
        }

     二,RowBounds实现分页(本质,在sql层面将所有数据查出来,最后在Java层面利用RowBounds对象,实现分页)

    接口

        //利用limit实现分页(基于java层面实现)
        List<User> getUserByRowBounds();

    mapper.xml

        <!--//分页2-->
        <select id="getUserByRowBounds" resultMap="userMap">
            select * from mybatis.user;
        </select>

    测试

        @Test
        public void limitTest2(){
            SqlSession sqlSession = MybatisUtils.getSqlSession();
            UserMapper mapper = sqlSession.getMapper(UserMapper.class);
             
            //RowBounds实现分页
            RowBounds rowBounds = new RowBounds(1,2);
            List<Object> list = sqlSession.selectList("com.king.dao.UserMapper.getUserByRowBounds", null, rowBounds);
            for (Object user : list) {
                System.out.println(user);
            }
    
    
            sqlSession.close();
        }

    插件分页可以看官方文档逐步实现,原理与RowBounds相似

  • 相关阅读:
    ScrollView 字典
    centos 6.x 安装redis
    Linux 添加epel源
    Linux 关于解压
    Linux 删除文件夹
    Linux sz rz
    让div 实现 input效果
    解决js浮点数计算bug
    键盘绑定事件和焦点处理
    npm的镜像替换成淘宝
  • 原文地址:https://www.cnblogs.com/CL-King/p/13873159.html
Copyright © 2011-2022 走看看