返回顶部
首页 > 资讯 > 后端开发 > Python >Mybatis-Plus的SQL语句组拼原理说明
  • 787
分享到

Mybatis-Plus的SQL语句组拼原理说明

2024-04-02 19:04:59 787人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

记录查找自动组拼sql语句的过程 首先在BaseMapper其中的一个方法下打个断点 在断点显示的值栏找到相关的SQL 发现SQL语句在MappedStatement对象中,而sq

记录查找自动组拼sql语句的过程

首先在BaseMapper其中的一个方法下打个断点

在这里插入图片描述

在断点显示的值栏找到相关的SQL

发现SQL语句在MappedStatement对象中,而sqlSource存的就是相关的sql语句

在这里插入图片描述

在这里插入图片描述

然后在MappedStatement这个对象打断点,看看到底是哪个对象对它进行了操作

在这里插入图片描述

发现是AutoSqlInjector创建了MappedStatement

在这里插入图片描述

在AutoSqlInjector对象找到与selectById相关的一个方法,打断点

在这里插入图片描述

SqlSource果然在这里创建出来了,createSqlSource就是具体过程,然后添加到MappedStatement对象中,此SQL完成组拼

在createSqlSource方法打下断点,进入具体的组拼过程

在这里插入图片描述

方法sqlSelectColumns就是具体的组拼方法,一直在此方法进行递归

在这里插入图片描述

在此方法中,迭代器在不断迭代组拼

在这里插入图片描述

最后SQL全部完成组拼,存在集合对象中,就可以取出来了

学会从逆推到顺推,学会怎样打断点是关键。

mybatisPlus注解版动态拼接sql

前段时间不是在实习嘛,公司用的是注解开发不用xml的,特此记录注解版动态拼接sql,还有使用过程中踩坑集合。

先记录1.0版本,以后遇到别的在完善就是。

其实就是在xml那种格式下面最外面一层用< /script > 标签包住就行了,其余部分用英文双引号包住,表达式用单引号包住就ok了,@Param(“idMin”) Integer idMin与#{idMin}对应。

不过我这里如果idMin为null那么between null and 20是查不出数值的,< /script > 标签是重点,这种sql业务逻辑读者以后自己改。



public interface GoodsMapper extends BaseMapper<Goods> {
    @Select("<script>"
            + "select * from goods where id between"
            + "<if test='#{idMin}!=null'>" + "#{idMin} and "+"</if>"
            + "<if test='#{idMax}!=null'>" + "#{idMax}" + "</if>"
            + "</script>")
    public List<Goods> select(@Param("idMin") Integer idMin, @Param("idMax") Integer idMax);
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: Mybatis-Plus的SQL语句组拼原理说明

本文链接: https://lsjlt.com/news/127964.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Mybatis-Plus的SQL语句组拼原理说明
    记录查找自动组拼SQL语句的过程 首先在BaseMapper其中的一个方法下打个断点 在断点显示的值栏找到相关的SQL 发现SQL语句在MappedStatement对象中,而sq...
    99+
    2024-04-02
  • Mybatis-Plus中SQL语句组拼原理的的示例分析
    这篇文章主要为大家展示了“Mybatis-Plus中SQL语句组拼原理的的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Mybatis-Plus中SQL语句组拼原理的的示例分析”这篇文章...
    99+
    2023-06-15
  • mybatis中sql语句CDATA标签的用法说明
    sql语句CDATA标签的用法 CDATA 指的是不应由 XML 解析器进行解析的文本数据(Unparsed Character Data)。 在 XML 元素中,"<" 和 ...
    99+
    2024-04-02
  • mybatis-plus 使用Condition拼接Sql语句各方法的用法
    mybatis-plus Condition拼接Sql语句各方法 1.setSqlSelect—用于添加查询的列信息 public Wrapper<T> s...
    99+
    2024-04-02
  • mybatis-plus的sql语句打印问题小结
    目录第一种方式:第二种方式:mybatis-plus使用时候的小问题记录。 在使用mybatis-plus的时候需要把sql的语句打印出来,查看执行的成功与否,在以前的项目的时候使用...
    99+
    2024-04-02
  • Java中怎么拼接SQL语句到mybatis的xml
    这篇文章将为大家详细讲解有关Java中怎么拼接SQL语句到mybatis的xml,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。关键语句:StringBuilder whereSql&n...
    99+
    2023-06-15
  • mybatis-plus的sql语句打印问题怎么解决
    本篇内容介绍了“mybatis-plus的sql语句打印问题怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!第一种方式:mybatis...
    99+
    2023-06-30
  • Java代码里如何拼接SQL语句到mybatis的xml
    关键语句: StringBuilder whereSql = new StringBuilder(); whereSql.append("SQL"); 实...
    99+
    2024-04-02
  • Mybatis-Plus的应用场景描述及注入SQL原理分析
    目录一、背景1.1 传统Mybatis的弊端1.2 MyBatis-Plus的定位1.3 特性1.4 原理解析二、准备工作2.1 基础接口BaseMapper2.2 创建实体类对象2...
    99+
    2024-04-02
  • Mybatis注解方式完成输入参数为list的SQL语句拼接方式
    目录Mybatis注解完成输入参数为list的SQL语句拼接拼接查询条件为list集合的sql函数Mybatis注解完成输入参数为list的SQL语句拼接 首先将list集合拼接成一...
    99+
    2024-04-02
  • mybatis条件语句中带数组参数的处理
    目录mybatis条件语句中带数组参数这里给出一个示例这里有必要说明的是foreach标签中的collection属性mybatis多参数传递(其中包括数组)mapper接口mapp...
    99+
    2024-04-02
  • SQL语句解析执行的过程及原理
    目录一、sqlSession简单介绍二、获得sqlSession对象源码分析三、SQL执行流程,以查询为例一、sqlSession简单介绍 拿到SqlSessionFactory对象...
    99+
    2024-04-02
  • 如何使用Mybatis注解方式完成输入参数为list的SQL语句拼接方式
    这篇文章给大家分享的是有关如何使用Mybatis注解方式完成输入参数为list的SQL语句拼接方式的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Mybatis注解完成输入参数为list的SQL语句拼接首先将lis...
    99+
    2023-06-21
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作