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);
          }
      
      }
  • 相关阅读:
    从小白到全栈的前端学习路径
    Vue初学者可能不知道的坑
    vue的基础使用
    15-浮动
    02-css的选择器
    深入理解JavaScript的闭包
    深入理解JavaScript的闭包,前戏— 作用域和词法作用域
    JavaScript简介
    02-HTML5新的input属性
    springboot+spring session+redis+nginx实现session共享和负载均衡
  • 原文地址:https://www.cnblogs.com/shangwei/p/15262690.html
Copyright © 2011-2022 走看看