java - 使用 Spring JDBC 调试 SQL 查询

标签 java spring jdbc

我正在使用 Spring 框架,并且正在执行测试驱动开发。我得到一个异常(exception),但我不完全确定为什么,所以我想看看查询 jdbc 实际运行的是什么。尝试的查询如下:

public OrderEntity addOrderEntity(OrderEntity orderEntity) {
    String query = "INSERT INTO ORDERS(ID,REVISION,CONTRACT_ID,PROJECT_ID,WORKSITE_ID,DROPZONE_ID,DESCRIPTION_ID,MANAGER_ID,DELIVERY_DATE,VOLUME) VALUES(?,?,?,?,?,?,?,?,?,?)";
    String id = (orderEntity.get_id() != null) ? orderEntity.get_id() : UUID.randomUUID().toString();
    jdbcTemplate.update(id,1,orderEntity.getContractNo(),orderEntity.getProjectID(),orderEntity.getWorksiteID(),orderEntity.getDropzoneID(),orderEntity.getDescriptionID(),orderEntity.getManagerID(),orderEntity.getDeliveryDate(),orderEntity.getVolume());

    return getOrderEntityById(id);
}

那么,查看 JDBC 正在运行的查询或获取一些有用信息的最佳方式是什么?它目前抛出 org/springframework/dao/QueryTimeoutException(我发现它毫无用处)所以我真的不知道哪里出了问题。

编辑:现在已经添加了 log4j 但仍然没有得到有用的查询。属性文件如下:

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%-5t] %-5p %c - %m%n
log4j.rootLogger=trace, stdout

log4j.logger.org.springframework.jdbc.core=DEBUG
log4j.logger.org.springframework.jdbc.core.StatementCreatorUtils=DEBUG

最佳答案

您可以使用以下方式启用查询跟踪:

log4j.logger.org.springframework.jdbc.core = TRACE

特别是

log4j.logger.org.springframework.jdbc.core.StatementCreatorUtils=TRACE

这将显示如下消息:

 TRACE StatementCreatorUtils:206 - Setting SQL statement parameter value: column index 4, parameter value [TheValueWillBeHere]

关于java - 使用 Spring JDBC 调试 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22324595/

相关文章:

java - Magnolia 5.4.7 更改列排序

java - Webview SSL 认证错误不受信任

java - REST 端点 Spring Boot 中参数的自定义验证逻辑

java - 如何对 3x3 的单选按钮网格进行分组?

不同目录中的 Java 类路径

java - 找不到基本名称的 Spring ResourceBundle

java - 无法执行目标 org.apache.maven.plugins :maven-compiler-plugin:3. 8.0:编译(默认编译)

java - 如何从 mysql glob 类型获取图像

java - 如何将mysql连接到spring roo?

mysql - 使用 RJDBC 在 R 中创建 JDBC 驱动程序