zoukankan      html  css  js  c++  java
  • 如何用Mybatis逆向工程实现分页查询(更改生成的Example)

    如何用Mybatis逆向工程实现分页查询 
    一个很简单的方法,如果要mysql实现分页查询的话,执行下述语句即可

        select * from table
        limit (offset)5,(limit)10;

    其中,第一个参数offset为游标起点,第二个参数limit为一次所取的数据量.这个语句在数据库中极其简单,但由于mybatis的逆向工程将绝大多数的sql语句包装成方法,那么如果要实现分页查询的话,本人看了下mapper.xml的代码,可以如下实现:

    1、打开生成的example.class,在里面的变量中增加offset,limit两个变量,并为其添加set,get方法
     

        protected Integer leftLimit;
        protected Integer limitSize;
    
        public Integer getLeftLimit() {
            return leftLimit;
        }
    
        public void setLeftLimit(Integer leftLimit) {
            this.leftLimit = leftLimit;
        }
    
        public Integer getLimitSize() {
            return limitSize;
        }
    
        public void setLimitSize(Integer limitSize) {
            this.limitSize = limitSize;
        }
    
    1. 打开mapper.xml文件里面对应位置设置配置.例如在selectByExample方法中配置,添加条件
          <if test="leftLimit != null &amp;&amp; limitSize!= null">
            limit ${leftLimit},${limitSize}
          </if>

      改变的前提是要能看懂逆向工程中Example的含义,很好用很简单

    2. 完整代码如下

        <select id="selectByExample" parameterType="club.bagedate.o2o.entity.ShopExample"     resultMap="BaseResultMap">
        <!--
          WARNING - @mbg.generated
          This element is automatically generated by MyBatis Generator, do not modify.
          This element was generated on Tue May 14 10:48:08 CST 2019.
        -->
        select
        <if test="distinct">
          distinct
        </if>
        <include refid="Base_Column_List" />
        from shop
        <if test="_parameter != null">
          <include refid="Example_Where_Clause" />
        </if>
        <if test="orderByClause != null">
          order by ${orderByClause}
        </if>
        <if test="leftLimit != null &amp;&amp; limitSize!= null">
          limit ${leftLimit},${limitSize}
        </if>
      </select>
    1.  通过java代码实现具体业务逻辑,实现分页就OK了

  • 相关阅读:
    Visual C# 2005中编写Socket网络程序
    [ASP.NET缓存BUG]这几天遇到的头痛问题之一,晚上遇到终于解决一劳永逸
    检测远程URL是否存在的三种方法<转>
    C#开源资源大汇总
    Asp.Net中动态页面转静态页面
    开发人员必进的网站
    基于反向代理的Web缓存加速——可缓存的CMS系统设计
    解决MVC3 服务器无法在已发送 HTTP 标头之后设置状态 问题
    HyperLink 控件控制图片宽度高度的几种方法
    C#进程注入
  • 原文地址:https://www.cnblogs.com/zhangguangxiang/p/14232558.html
Copyright © 2011-2022 走看看