zoukankan      html  css  js  c++  java
  • MyBatis拦截参数 自动带上limit

     现在公司项目里都是使用mybatis,突然有一天,看到一个奇怪的现象,在controller、service和dao都没有设置查询的 limit x,y ,但是,放开sql打印,确确实实打印了limit语句,并且实际效果也是limit的。

      吓得我关了IDE,清了缓存,再试,居然还是一样的。

      奇了怪了,这个为什么会自动加上limit查询呢?难道是mybatis新出的黑科技?但是,我看mybatis的版本,也才mybatis-spring-boot-starter 1.3.2,还是2018年3月份的,如果那个时候就出了,肯定网上资料一大堆啊,可我搜了关键字,也没看到黑科技的信息。

      没办法,只能本地下断点,一点点F6,终于,发现了目标 PagePlugin 对象,PagePlugin实现了 mybatis的interceptor,点进去一看,原来,在执行select语句之前,会通过ParameterHandler进行参数拦截,自动给你加上limit 和算好的起始位置、size,还顺带把 count值计算了。

      看来自己的知识面,还是不够广泛啊。。

    ps:代码就不贴了,网上一搜一大把 

  • 相关阅读:
    前端CSS部分简单整理
    前端HTML部分简单整理
    Top Android App使用的组件
    使用DialogFragment创建对话框总结
    Rails常用命令
    developer.android.com笔记
    Google Maps API v2 Demo Tutorial
    Android学习的一些问题
    Android学习过程
    Beginning Android 4 Programming Book学习
  • 原文地址:https://www.cnblogs.com/aitree/p/14548916.html
Copyright © 2011-2022 走看看