在本文中,我将向您展示使用 Spring Boot 时记录 SQL 语句的最佳方式。
记录 SQL 查询非常重要,因为它允许您验证生成语句的数量、自动生成查询的语法,以及证明JDBC 批处理按预期工作。
DataSource-Proxy是记录 SQL 语句的最佳方式之一:由于它代理 JDBC DataSource,因此它可以记录您可能与 Spring Boot 一起使用的任何数据访问层技术的语句。即使您混合使用 JPA 和jOOQ,DataSource-Proxy 也会打印所有通过Connection代理的 JDBC 执行的 SQL 语句。
添加依赖:
<dependency>
<groupId>com.github.gavlyukovskiy</groupId>
<artifactId>datasource-proxy-spring-boot-starter</artifactId>
<version>${ds-proxy-spring-boot-starter.version}</version>
</dependency>
|
当 Spring Boot 启动时,它会创建一个DataSource供 JPA、Hibernate 或其他数据访问技术使用。为了使用 DataSource-Proxy,我们需要允许应用程序使用这个代理替代默认的 JDBCDataSource。
现在 Spring Boot 可以打印由任何数据访问技术生成的有意义的 SQL 语句:
Name:dataSource, Connection:5, Time:1, Success:True
Type:Prepared, Batch:False, QuerySize:1, BatchSize:0
Query:["
SELECT
u.id AS id1_7_,
u.email AS email5_7_,
u.external_id AS external6_7_,
u.first_name AS first_na7_7_,
u.last_name AS last_nam9_7_,
FROM users u
WHERE u.email = ?
"]
Params:[(
john.doe@acme.com
)]
|
原文点击标题