关于springboot整合jpa:
https://blog.csdn.net/qq_35387940/article/details/10254131
jpa使用@Query 多表关联、传参:
https://blog.csdn.net/qq_35387940/article/details/102545849
正题,很多人使用Springboot整合JPA后,都会在配置文件中设置配置项 show-sql:
但是这仅仅也就打印了每次执行的SQL语句,如:
显然,没有传入的参数。
在配置文件中加入日志配置项:
logging:
level:
org.springframework.security:
- debug
- info
org.springframework.web: error
org.hibernate.SQL: debug
org.hibernate.engine.QueryParameters: debug
org.hibernate.engine.query.HQLQueryPlan: debug
org.hibernate.type.descriptor.sql.BasicBinder: trace
然后是测试的查询方法:
@Query(value="select * from user where name=(:name)",nativeQuery = true)
User getUserByName(@Param("name") String name);
调用接口,传入name:
看看控制台日志的打印:
可以看到SQL语句以及这语句的传入绑定参数都在日志中有打印了(这时候其实show-sql可以关闭掉)
等等,其实还没完,这样就满足了吗?
真正我们想要的就仅仅这样吗?
想要的是这种效果:
请参考我的这篇 高阶:
https://blog.csdn.net/qq_35387940/article/details/102563845
文章目录
Springboot
JPA
- 显示
日志
形式的
sql
语句以及
参数
1、去掉 show
sql
2、
日志
配置3、
打印
形式
Springboot
JPA
- 显示
日志
形式的
sql
语句以及
参数
1、去掉 show
sql
#
spring
:
#
jpa
:
# show-
sql
: true
2、
日志
配置
logging:
level:
hibernate:
SQL
: debug
type:
descript
<groupId>com.googlecode.log4jdbc</groupId>
<artifactId>log4jdbc</artifactId>
<version>1.2</version>
datasource:
driver-class-name: com.my
sql
.cj.jdbc.Driver
driver-class-name: net.sf.log4jdbc.
sql
.jdbcapi.DriverSpy
url: jdbc:my
sql
://localhost:3306/testdemo?useSSL=false&useUnicode=true&char
一般Log4J或Slf4J默认输出级别最低也是DEBUG,而
参数
值输出的LEVEL级别是TRACE,所以需要指定
日志
的LEVEL为TRACE
log4j2-
spring
.xml配置文件增加
<Loggers>
<Root level="INFO">
<AppenderRef ref="Console" />
<AppenderRef ref="File" />
</Root>
<logger name="org.hibernat
logging.level.org.hibernate.
SQL
=DEBUG
logging.level.org.hibernate.type.descriptor.
sql
.BasicBinder=TRACE
spring
:
jpa
:
properties:
hibernate:
show_
sql
: true
format_
sql
: true...
先说
springboot
整合
jpa
PA(java persistence api),它并不是一个框架,而是一组规范。其中,Hibernate就实现了这个规范,而且是相当成功的(其实TopLink和Open
JPA
也都实现了
JPA
规范,不过它们被Hinernate的光环笼罩了)。所以呢,当我们说到
JPA
的时候,好多人首先想到的就是Hibernate。
一,创建工程时把依赖添加上
二,配置yml文件
########
springboot
整合
jpa
配置
spring
:
devtools:
spring
.
jpa
.show-
sql
=true
spring
.
jpa
.properties.hibernate.format_
sql
=true
logging.level.org.hibernate.
SQL
=debug
2. 在application.yml文件中添加以下属性:
spring
:
jpa
:
show-
sql
: true
properties:
hibernate:
format_
sql
: true
datasource:
hikari:
# ...
logging:
level:
org.hibernate.
SQL
: debug
以上两种方法都可以
打印
JPA
执行的
SQL语句
,其中第一种方法使用的是properties文件,第二种方法使用的是yml文件。需要注意的是,第二种方法中的属性名需要使用驼峰命名法。