有什么方法可以获得iBatis的执行查询吗?我想重用UNION查询的查询.
例如:
<sqlMap namespace="userSQLMap">
<select id="getUser" resultClass="UserPackage.User">
SELECT username,
password
FROM table
WHERE id=#value#
</select>
</sqlMap>
Run Code Online (Sandbox Code Playgroud)
当我执行查询时
int id = 1
List<User> userList = queryDAO.executeForObjectList("userSQLMap.getUser",id)
Run Code Online (Sandbox Code Playgroud)
我想得到 SELECT username, password FROM table WHERE id=1
有什么方法可以得到查询吗?
谢谢.
小智 10
显示这些信息是可行的.iBatis使用了一些Logging框架,包括Log4J.
要在类路径中使用Log4Jcreate file log4j.properties.您必须将下一行放在文件中,例如:
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
Run Code Online (Sandbox Code Playgroud)
有关其他日志记录框架和详细信息,请参阅此链接
vsi*_*ngh 10
将其添加到log4j.xml文件中,您可以在控制台上看到输出.
<logger name="java.sql" additivity="false">
<level value="debug" />
<appender-ref ref="console" />
</logger>
Run Code Online (Sandbox Code Playgroud)
您将看到正在传递的参数,正在执行的查询以及查询的输出.
Configuration从你那里获取对象SqlSessionFactory,然后:
MappedStatement ms = configuration.getMappedStatement("MyMappedStatementId");
BoundSql boundSql = ms.getBoundSql(parameters); // pass in parameters for the SQL statement
System.out.println("SQL" + boundSql.getSql());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
42068 次 |
| 最近记录: |