zoukankan      html  css  js  c++  java
  • 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);
          }
      
      }
  • 相关阅读:
    COMMIT WORK AND WAIT 是在WAIT什么
    BINARY SEARCH in read table statement
    SAP 金额在表中的存储及货币转换因子
    REUSE_ALV_POPUP_TO_SELECT的使用技巧
    SAPScript、Smartforms动态打印图像或者背景图片
    SAP_Web_Service开发配置
    SAP中关于用户IP信息的获取(转载)
    DevExpress控件开发常用要点(项目总结版)
    鼠标指向表格时 显示更多信息 toolTipController1
    DevExpress组件之——TreeList组件
  • 原文地址:https://www.cnblogs.com/shangwei/p/15262690.html
Copyright © 2011-2022 走看看