iBatis выполняется sql

Есть ли какой-либо путь, где я могу получить выполняемый запрос iBatis? Я хочу снова использовать запрос для Запроса на объединение.

Например:

<sqlMap namespace="userSQLMap">
   <select id="getUser" resultClass="UserPackage.User">
        SELECT username,
               password 
        FROM table 
        WHERE id=#value#
   </select>
</sqlMap>

И когда я выполняю запрос через

int id = 1
List<User> userList = queryDAO.executeForObjectList("userSQLMap.getUser",id)

Я хочу добраться SELECT username, password FROM table WHERE id=1

Есть ли какой-либо способ, которым я мог получить запрос?

Спасибо.

19
задан qaxi 14 April 2010 в 05:19
поделиться

3 ответа

Для этого можно использовать p6spy или jdbcdslog .

1
ответ дан 30 November 2019 в 03:59
поделиться

Большинство механизмов SQL позволяют «регистрировать» все выполненные запросы (обычно вместе с информацией о времени, затраченном на запрос, количестве возвращенных результатов и т. Д.). Есть ли у вас доступ к журналам вашего движка и можете ли вы настроить его так, чтобы он регистрировал все, что вам нужно?

2
ответ дан 30 November 2019 в 03:59
поделиться

Возможно показать эту информацию.iBatis использует некоторые фреймворки логирования, включая Log4J.
Для использования Log4J создайте файл 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

Для других фреймворков логирования и подробной информации смотрите эту ссылку

10
ответ дан 30 November 2019 в 03:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: