如何在mybatis中调试查看生成的sql语句

2025-05-13 12:32:45
推荐回答(3个)
回答(1):

mybatis的源码中查看生成的sql语句,参考执行以下代码即可。具体代码如下:

把里面PooledDataSource类的log输出部分,换成log.warn之后,重新打jar包,放到项目中,日志级别改为info,如:

log4j.rootLogger=info, stdout, R  
  
log4j.appender.stdout=org.apache.log4j.ConsoleAppender  
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout  
log4j.appender.stdout.layout.ConversionPattern=[service] %d - %c -%-4r [%t] %-5p %c %x - %m%n  
  
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender  
log4j.appender.R.File=../logs/service.log  
log4j.appender.R.layout=org.apache.log4j.PatternLayout  
log4j.appender.R.layout.ConversionPattern=[service] %d - %c -%-4r [%t] %-5p %c %x - %m%n  
  
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  
log4j.logger.java.sql.ResultSet =debug

回答(2):

您好:

要在控制台查看生成的sql语句,需要配置日志,这里以lo4j2为例子;
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

回答(3):

我推荐使用log4jdbc或是log4jdbc-remix,其实这2个都差不多,这个会把你sql的的?以实际的值填充进去,对查看生成的sql非常有帮助