【Mybatis】调试查看执行的 SQL 语句

这篇具有很好参考价值的文章主要介绍了【Mybatis】调试查看执行的 SQL 语句。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 问题场景:

记录日常开发过程中 Mybatis 调试 SQL 语句,想要查看Mybatis 中执行的 SQL语句,导致定位问题困难

2. 解决方式

双击shift找到mybatis源码中的 MappedStatementgetBoundSql()方法

public BoundSql getBoundSql(Object parameterObject) {
    BoundSql boundSql = sqlSource.getBoundSql(parameterObject);
    List<ParameterMapping> parameterMappings = boundSql.getParameterMappings();
    if (parameterMappings == null || parameterMappings.size() <= 0) {
      boundSql = new BoundSql(configuration, boundSql.getSql(), parameterMap.getParameterMappings(), parameterObject);
    }

    // check for nested result maps in parameter mappings (issue #30)
    for (ParameterMapping pm : boundSql.getParameterMappings()) {
      String rmId = pm.getResultMapId();
      if (rmId != null) {
        ResultMap rm = configuration.getResultMap(rmId);
        if (rm != null) {
          hasNestedResultMaps |= rm.hasNestedResultMaps();
        }
      }
    }

    return boundSql;
  }

Mybatis 的底层都会把 Mapper.xml 配置文件中的SQL 标签转化为基于 JDBC 执行的语句, boundSql 变量可以看到完整的 SQL 语句

因此,可以在最后一行的return boundSql;打一个断点。执行 SQL 查询语句,就能查看到执行的sql了
【Mybatis】调试查看执行的 SQL 语句,mybatis,sql,java文章来源地址https://www.toymoban.com/news/detail-640277.html

到了这里,关于【Mybatis】调试查看执行的 SQL 语句的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • MyBatis中相关SQL语句

    1.between... and... 2.and   or 3.like ---两种写法 完整示例:   前端传入cust_no为1019,后端实际查询语句 注意:由于一开始where语句只写了 if test=\\\"reportRule != null没有写reportRule != \\\'\\\'\\\" ,导致查询结果出错,所以我们如果用到动态查询的话,一定要搞清楚前端传的是空值还是null值,如

    2024年02月12日
    浏览(10)
  • Mybatis中执行Sql的执行过程

    MyBatis中执行SQL的过程可以分为以下几个步骤: 解析配置文件:在运行时,MyBatis会加载并解析配置文件(通常为 mybatis-config.xml ),获取数据库连接信息、映射文件等。 创建SqlSessionFactory:MyBatis使用SqlSessionFactory来创建SqlSession对象。SqlSessionFactory是一个线程安全的对象,应该

    2024年02月08日
    浏览(7)
  • Mybatis 开启控制台打印sql语句

    org.jeecg.modules.hdx.mapper为@mapper注解下面的类,或者继承BaseMapper,或者@MapperScan扫描包的类 2-1:在pom文件引入依赖 3-1:pom配置(包含分页)

    2024年02月13日
    浏览(40)
  • mybatis配置批量执行SQL

    foreach 标签插入数据量大时,明显影响效率,个人倾向以下配置  applicationcontext 配置文件 Java代码 mybatis文件没什么可说的,就是普通单条插入的insert 标签即可

    2024年02月12日
    浏览(5)
  • 【Spring Boot+Thymeleaf+MyBatis+mysql】实现电子商务平台实战(附源码)持续更新~~ 包括sql语句、java、html代码

    【Spring Boot+Thymeleaf+MyBatis+mysql】实现电子商务平台实战(附源码)持续更新~~ 包括sql语句、java、html代码

    源码请点赞关注收藏后评论区留言和私信博主 开发环境:Web服务器使用Servlet容器,数据库采用mysql,集成开发环境为Spring Tool Suite(STS) 电子商务平台分为两个子系统 一个是后台管理系统 一个是电子商务系统,下面分别讲解着两个子系统的功能需要与模块划分 1:后台管理子

    2024年02月09日
    浏览(11)
  • IDEA全局设置MyBatis中写SQL语句提示

    IDEA全局设置MyBatis中写SQL语句提示

    第一步:把这两个设置改成MySQL即可:   第二步:找到设置=编辑器=语言注入=店家加号,选择MySQL 

    2024年02月13日
    浏览(8)
  • MyBatis XML 映射文件中的 SQL 语句可以分为动态语句和静态语句

    目录 静态查询: 动态查询: 静态更新: 动态更新: 静态删除: 动态删除: 动态语句和静态语句在 MyBatis 中的作用如下: 静态查询: 静态查询是指在 SQL 语句中执行固定的查询操作,查询的条件和内容是预先确定的,不会随着用户输入或其他条件的改变而改变。以下是一

    2024年01月18日
    浏览(15)
  • Mybatis - 常用 SQL 语句设计思路及具体实现 - 学习记录

    使用 Mybatis,那么在 xml 文件内,最好 不要使用任何的注释符号 ,否则会报错 Could not set parameters for mapping解决方法 xml文件内有注释符号导致的 补充提醒: 因为批量操作会拼接成很长很长的mysql语句,所以mysql server在接收数据包的时候,对这个数据包的大小是有设置项限制的

    2024年02月09日
    浏览(5)
  • 使用MyBatis的mapper接口调用时有哪些要求?Mybatis 动态 sql 有什么用?执行原理?有哪些动态 sql?

    1. Mapper接口方法名和mapper.xml中定义的每个 sql的id相同 2.Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql 的 parameterType的类型相同 3.Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的 resultType的类型相同 4.Mapper.xml文件中的 namespace 即是 mapper接口的类路径 可以在

    2024年02月16日
    浏览(7)
  • MyBatis动态sql之批量修改、批量新增(使用foreach标签的一条sql语句解决)

            批量新增和批量修改在业务中是很常见的,一条sql访问数据库和通过代码循环体中循环访问数据库做单个数据新增修改相比较下:一条sql访问数据库性能上明显提升,代码且简洁明了 1、Mapper.java中 说明: 参数是list  2、Mapper.xml中 说明: 通过trim标签拼接前后缀和

    2024年02月10日
    浏览(12)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包