java 如何获取ibatis 配置文件中 执行的 sql语句,带参数.

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 如何获取ibatis 配置文件中 执行的 sql语句,带参数.相关的知识,希望对你有一定的参考价值。

例如: 我点击插入,程序通过sql.xml执行 select... 然后在java 后台获取到 执行的这个select语句,包括参数.

参考技术A 配置一下log4j就可以了 在src下新建个log4j.properties
然后把下面的粘贴进去 就ok了
log4j.rootLogger=INFO,A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-dyyyy-MM-dd HH\:mm\:ss [%p]-[%c] %m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=D:/lotteryIpcall_log.txt
log4j.appender.R.DatePattern = '.'yyyy-MM-dd
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%dyyyy-MM-dd HH\:mm\:ss [%p]-[%c] %m%n
log4j.logger.com.ibatis=debug,R
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug,R
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug,R
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug,R
log4j.logger.java.sql.Connection=debug,R
log4j.logger.java.sql.PreparedStatement=debug,R
参考技术B 你的log4j中加上这样的配置

log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG追问

我是要在java后台获取 ,插入到数据库, 不是现实到控制台.

追答

log4j.rootLogger=DATABASE

# ************************************************* #
# log put into database
# ************************************************* #
log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.DATABASE.URL=jdbc:mysql://localhost:3306/lsoba
log4j.appender.DATABASE.driver=com.mysql.jdbc.Driver
log4j.appender.DATABASE.user=root
log4j.appender.DATABASE.password=lijian
log4j.appender.DATABASE.sql=INSERT INTO loginfo (date,thread,level,logclass,message,user) values ('%dyyyy-MM-dd HH:mm:ss', '%t', '%p', '%l', '%m','%Xuser')
log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout
前面加上这些,根据你自己的情况稍加修改
这里是控制日志输出到什么地方
还有我想说的是 你问的问题中我是没看到哪里说要插入到数据库了

如何在struts2+ spring+ ibatis 框架中配置log4j让控制台显示sql语句

参考技术A 这个不是在log4j里面配置的,log4j只是记录执行操作的日志,这个需要在一个xml配置文件里面配置
<!-- 日志记录的SQL监控 --> <plugin interceptor="com.cmsz.framework.log.sqlmonitor.IBatis3SqlMonitorPlugin"> <property name="printSql" value="true"></property> </plugin>
这个是配置文件需要些的代码,只要这个配置好了,控制台就可以显示sql语句了
这里面的interceptor需要写一个监听类

以上是关于java 如何获取ibatis 配置文件中 执行的 sql语句,带参数.的主要内容,如果未能解决你的问题,请参考以下文章

ibatis 执行sql的事务控制问题

在ibatis和mysql环境下使用insert如何获取返回值

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

如何在struts2+ spring+ ibatis 框架中配置log4j让控制台显示sql语句

如何使用 iBatis 从数据库中选择 BLOB 列

不需要配置log4j , 调试打印ibatis执行的sql语句和参数