当前位置:首页 » 编程语言 » ibatis生成sql

ibatis生成sql

发布时间: 2025-01-10 03:56:10

㈠ mybatis怎么输出sql语句

#将ibatis log4j运行级别调到DEBUG可以在控制台打印出ibatis运行的sql语句

log4j.rootLogger=debug,stdout,logfile
### 把日志信息输出到控制台 ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#log4j.appender.stdout.Target=System.err
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout
### 把日志信息输出到文件:jbit.log ###
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=D:/test.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %F %p %m%n

###显示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

㈡ ibatis配置文件中update语句的写法

ibatis标签提供生成sql的功能,没有标签满足你的需求。
但是可以从sql的角度解决,像是你用select的时候的1=1的处理方式。
我是这么搞的
update user
set id = id
<............>
where id = #{id}

㈢ Ibatis如何打印SQL语句

方法:
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %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,stdout
把这段配置放到log4j.properties文件中即可。
在项目试运行需要维护得阶段可以把debug改为error,这样服务器后台只打印报错信息,这样既可以看清错误又可以减轻服务器负担(后台不断打印数据很消耗服务器资源的)

㈣ mybatis怎么打印出sql,我被误导了很多年

探讨MyBatis打印SQL语句的方法,常见答案建议将java.sql.*,com.ibatis的日志级别配置为debug以实现实现。但实际操作中发现,打印SQL与上述Java框架并无直接关联。MyBatis使用的日志对象是org.apache.ibatis.logging.slf4j.Slf4jImpl(statementLog)。日志的打印与否取决于statementLog与log4j.xml或log4j.properties中log4j.logger的匹配情况。

详细分析如下:

1. 核心在于statementLog的调试级别,决定是否打印SQL。

具体实现于org.apache.ibatis.executor.SimpleExecutor,当调用ConnectionLogger对象时,便执行打印日志的代码。

关键代码行位于org.apache.ibatis.logging.jdbc.BaseJdbcLogger的ConnectionLogger(BaseJdbcLogger).debug(String, boolean)处,位于第141行。

2. statementLog的注入来源于MappendStatement。

MappendStatement由org.apache.ibatis.session.Configuration注册。查看MappendStatement的构造过程,LogFactory.getLog(xx)这行代码是关键。

从这段代码的值来看,是否使用与java.sql、com.ibatis框架无关的日志框架。

MyBatis支持使用多种日志框架,包括slf4j或common-logger,其兼容性足够强大。

在类org.apache.ibatis.logging.LogFactory中,加载类时会执行静态代码块,尝试各种日志框架实现。若成功,则实例化logConstructor,确保即使客户端未包含特定实现,代码也不会出错。

总结而言,配置log4j.logger的值以指定的日志级别,即可实现MyBatis打印SQL语句的目的。例如,配置log4j.logger.com.helijia.search=DEBUG。

热点内容
创建边界缓存错误是啥 发布:2025-01-10 12:04:26 浏览:570
我的世界畸变生存服务器 发布:2025-01-10 12:02:51 浏览:157
长安unit卓越版有哪些配置 发布:2025-01-10 11:25:25 浏览:100
python安装后怎么打开 发布:2025-01-10 11:08:35 浏览:872
phpjava架构 发布:2025-01-10 10:56:06 浏览:385
python二维排序 发布:2025-01-10 10:56:00 浏览:608
南水北调怎么配置 发布:2025-01-10 10:55:27 浏览:122
广数980系统参数密码是多少 发布:2025-01-10 10:55:25 浏览:578
androidhtml字体 发布:2025-01-10 10:55:01 浏览:788
数据库连接工厂模式 发布:2025-01-10 10:51:00 浏览:489