首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >iBatis获取已执行的sql

iBatis获取已执行的sql
EN

Stack Overflow用户
提问于 2010-04-14 13:19:52
回答 6查看 45K关注 0票数 19

有没有办法可以得到iBatis的执行查询?我希望将该查询重用于UNION查询。

例如:

代码语言:javascript
复制
<sqlMap namespace="userSQLMap">
   <select id="getUser" resultClass="UserPackage.User">
        SELECT username,
               password 
        FROM table 
        WHERE id=#value#
   </select>
</sqlMap>

当我通过执行查询时

代码语言:javascript
复制
int id = 1
List<User> userList = queryDAO.executeForObjectList("userSQLMap.getUser",id)

我想让SELECT username, password FROM table WHERE id=1

有什么方法可以让我得到这个查询吗?

谢谢。

EN

回答 6

Stack Overflow用户

发布于 2010-06-15 23:14:50

有可能显示该information.iBatis使用了包括Log4J在内的一些日志记录框架。

要使用Log4J,请在类路径中创建文件log4j.properties。您必须在文件中添加接下来的几行,例如:

代码语言:javascript
复制
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.com.ibatis=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

有关其他日志记录框架和详细信息,请参阅this link

票数 10
EN

Stack Overflow用户

发布于 2011-07-29 21:26:46

将其添加到您的log4j.xml文件中,您可以在控制台上看到输出。

代码语言:javascript
复制
<logger name="java.sql" additivity="false">
    <level value="debug" />
    <appender-ref ref="console" />
</logger>

您将看到传递的参数、执行的查询和查询的输出。

票数 10
EN

Stack Overflow用户

发布于 2014-01-28 14:11:41

SqlSessionFactory获取Configuration对象,然后:

代码语言:javascript
复制
MappedStatement ms = configuration.getMappedStatement("MyMappedStatementId");
BoundSql boundSql = ms.getBoundSql(parameters); // pass in parameters for the SQL statement
System.out.println("SQL" + boundSql.getSql());
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2635058

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档