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);
          }
      
      }
  • 相关阅读:
    onmouseover事件
    ref:ThinkPHP Builder.php SQL注入漏洞(<= 3.2.3)
    ref:mysql命令大全
    ref:mysql丢失密码,如何修改?
    ref:学习笔记 UpdateXml() MYSQL显错注入
    转:[译]CSV 注入:被人低估的巨大风险
    转:深入剖析 JavaScriptCore
    转:Exploiting Electron RCE in Exodus wallet
    转:LNMP虚拟主机PHP沙盒绕过/命令执行(php exec命令被禁之后)
    转:Ubuntu16.04下配置php+vscode+xdebug开发环境
  • 原文地址:https://www.cnblogs.com/shangwei/p/15262690.html
Copyright © 2011-2022 走看看