如何获取在Mybatis中生成字符串的预准备语句

时间:2015-01-06 20:36:19

标签: java mybatis

我正在将开发人员工具作为Web服务。其中一个要求是开发人员工具应该能够将Mybatis使用的预准备语句作为字符串返回。但是,我不太确定如何将Mybatis使用的准备好的sql语句作为对象。

任何提示都会很棒。

经过进一步调查。我偶然发现了这篇文章:

How can I get the SQL of a PreparedStatement?

但是,我仍然想知道是否有任何方法可以实际联系服务器并查看分析的准备好的SQL语句?即检查我的数据库或某些连接模板的日志?

1 个答案:

答案 0 :(得分:0)

您可以将Mybatis日志记录用于SQL语句。
它生成SQL prepare语句如下所示:

Preparing: SELECT USER_ID AS userId, PASSWORD AS password, USER_NAME AS userName FROM USER_MST WHERE USER_NAME = ? AND PASSWORD = ? AND DELETE_FLAG = 0 
Parameters: test_uname(String), test_pass(String)

Here是Mybatis日志记录文档。

以下是mybatis的示例日志配置。

<?xml version="1.0" encoding="UTF-8"?>
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"
    debug="false">

    <appender name="APPLICATION" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="file" value="C:/log/mybatis.log" />
        <param name="MaxBackupIndex" value="10" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss,SSS} |%5p| [%c] | %m%n" />
        </layout>
    </appender>


    <logger name="YourMapperXML" additivity="false">
        <level value="DEBUG" />
        <appender-ref ref="APPLICATION" />
    </logger>


</log4j:configuration>