ibatis 异常时,打印 出 当前出错的SQL 信息

 RT 所示,ibatis 可以配置 debug 级别来 显示执行的 sql 语句,但是这样 内容太多太杂,不够直观。

 ibatis 是否能够 用什么手段达到 当 执行结果有异常时,将 当前的SQL 语句打印出来呢?

 

希望各位 赐教。

逻辑是这样的
1、首先将sql发送至数据库生成statement(注意若打印sql就是是这个地方打印的)
2、然后传入参数,然后数据库执行sql
3、在遇到错误的情况下,数据库返回异常,java层throw 异常(你想这里拿到上次的执行sql)

这里要去修改源代码才ok,因为以上的逻辑是顺序执行的,当你1不选择打印sql的时候,那么后面也不会了

log4j.logger.com.ibatis=error
把日志级别设置为error级别呢

sql监控工具很多,可以利用
[table]
|p6spy|http://www.p6spy.com/|
|log4jdbc|https://code.google.com/p/log4jdbc/|
|log4jdbc-remix|http://code.google.com/p/log4jdbc-remix/|
|log4jdbc-log4j2|https://code.google.com/p/log4jdbc-log4j2/|
[/table]

想法有问题,应该考虑如何从log信息中过滤出SQL异常时的信息。

按照你的想法,系统部署后你这个问题还会出现。