Mybatis控制台打印SQL语句的两种方式分析

java哥 阅读:440 2020-10-03 16:30:18 评论:0

问题描述
在使用mybatis进行开发的时候,由于可以动态拼接sql,这样大大方便了我们。但是也有一定的问题,当我们动态sql拼接的块很多的时候,我们要想从*mapper.xml中直接找出完整的sql就会非常的难,这个时候经常会需要把组合之后的完整sql调试出来比较好。下面来看两种调试出sql的两种方式

解决方案
方案1: 
网上说的比较多的,之前也是这么用的一种方式 

1:首先将ibatis log4j运行级别调到DEBUG可以在控制台打印出ibatis运行的sql语句  
 
2:添加如下语句: 
 
###显示SQL语句部分 
log4j.logger.com.ibatis=DEBUG 
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG 
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG 
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG 
log4j.logger.Java.sql.Connection=DEBUG 
log4j.logger.java.sql.Statement=DEBUG 
log4j.logger.java.sql.PreparedStatement=DEBUG 

方案2: 
最近发现的一种方式,方便快捷 

在mybatis.config.xml中增加如下配置:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE configuration  
PUBLIC "-//mybatis.org//DTD SQL Map Config 3.0//EN" 
"http://mybatis.org/dtd/mybatis-3-config.dtd"> 
 
<configuration>  
    <settings> 
<setting name="logImpl" value="STDOUT_LOGGING" /> 
  </settings> 
</configuration>

以上mybatis 调试出sql的两种方式。


在SpringBoot中,修改application.yml文件

mybatis: 
configuration: 
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl 

  



声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

发表评论
搜索
KIKK导航

KIKK导航

排行榜
关注我们

一个IT知识分享的公众号