• MyBatis使用分页


    分页

    思考:为什么要分页?
    • 减少数据的处理量

    使用Limit分页 

    select * from t_user limit 2 offset 1;

    使用Mybatis实现分页,核心SQL

    1. 接口
          List<User> getUserByLimit(Map<String, Object> map);
    2. Mapper.xml
      <?xml version="1.0" encoding="UTF8" ?>
      <!DOCTYPE mapper
              PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
              "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
      
      <mapper namespace="com.shang.dao.UserMapper">
      
          <!--    字段映射    -->
          <resultMap id="UserMapper" type="User">
              <result property="password" column="pwd"/>
          </resultMap>
      
          <select id="getUserByLimit" parameterType="map" resultMap="UserMapper">
              SELECT * FROM t_user limit #{size} OFFSET #{page};
          </select>
      
      
      </mapper>
    3. 测试
      @Test
      public void getUserByLimit() {
      
          SqlSession sqlSession = MybatisUtils.getSqlSession();
      
          UserMapper mapper = sqlSession.getMapper(UserMapper.class);
      
          HashMap<String, Object> stringObjectHashMap = new HashMap<>();
      
          stringObjectHashMap.put("size", 2);
          stringObjectHashMap.put("page", 2);
      
          List<User> userByLimit = mapper.getUserByLimit(stringObjectHashMap);
      
          for (User user : userByLimit) {
              System.out.println(user);
          }
      
      }

    使用RowBounds分页 

    1. 接口
          List<User> getUserByLimit(Map<String, Object> map);
    2. Mapper.xml
      <?xml version="1.0" encoding="UTF8" ?>
      <!DOCTYPE mapper
              PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
              "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
      
      <mapper namespace="com.shang.dao.UserMapper">
      
          <!--    字段映射    -->
          <resultMap id="UserMapper" type="User">
              <result property="password" column="pwd"/>
          </resultMap>
      
          <select id="getUserByLimit" parameterType="map" resultMap="UserMapper">
              SELECT * FROM t_user;
          </select>
      
      
      </mapper>
    3. 测试
      @Test
      public void getUserByLimit() {
      
          RowBounds rowBounds = new RowBounds(1, 2);
      
          SqlSession sqlSession = MybatisUtils.getSqlSession();
      
          List<User> userByLimit = sqlSession.selectList("com.shang.UserMapper.getUserByLimit", null, rowBounds);
      
      
          for (User user : userByLimit) {
              System.out.println(user);
          }
      
      }
  • 相关阅读:
    关于使用AJAX获取数据时,由于IE缓存而导致数据不更新,串数据的问题!
    优化PHP代码的40条建议(转)
    这么晚了!难得今天看了几个小时的JAVA
    WEB开发,路漫漫其修远兮,个人的求索思考
    (转)高效的MySQL分页
    20121108随笔,关于代码严谨性、编写的优雅性
    Ubuntu 12.04LTS 安装PHP扩展pdo_oci.so支持ORACLE数据库
    程序员应该具备的11项基本技能
    Windows下配置使用MemCached
    PHP浮点数比较
  • 原文地址:https://www.cnblogs.com/shangwei/p/15262690.html
Copyright © 2020-2023  润新知