继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

JPA打印SQL参数

2019-07-18 17:17:1113800浏览

廖师兄

4实战 · 14手记 · 9推荐
TA的实战

        使用过SpringBoot的同学对JPA一定不陌生,用它来操作数据库,一个字,快!

https://img4.mukewang.com/5d3036fd0001b75102400240.jpg

        本文教大家如何打印SQL参数

        先看看如何打印SQL语句,在application.yml里加上如下配置

https://img3.mukewang.com/5d31256200011dd611820185.jpg

        控制台就可以看到SQL语句了

https://img4.mukewang.com/5d30371a0001865016861292.jpg

接下来是重点了

我左思右想

没打印出SQL参数

无非2个原因


一是JPA压根没这功能,

那就得自己扩展了,想想心好累。。。

二是JPA已经打印了,

只是不展示而已,

你见或者不见,它就在那里5d3125620001f44700640064.jpg


事实证明,我的第二个猜想是正确的。

https://img2.mukewang.com/5d30371a00010e4916401544.jpg


        它用的是log.trace,只要对这个类设置日志级别不就可以了吗

https://img3.mukewang.com/5d3037190001366512880138.jpg

加好配置后,

激动的心,颤抖的手,这把一定有

运行!

https://img2.mukewang.com/5d30371b0001645c16261174.jpg


https://img1.mukewang.com/5d3038260001865301800180.jpg


如果日志配置使用的是logback.xml,只需在里面加上

<configuration>
    <logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE"/>
</configuration>


我在《SpringBoot微信点餐》课程源码也加上了该配置,有需要的同学可直接查看源码。



打开App,阅读手记
7人推荐
发表评论
随时随地看视频慕课网APP

热门评论

这不行啊,要的是参数值直接显示在SQL里,不是sql语句和参数分离

依赖
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.1.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>
<!-- jpa -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- jpa简化插件- https://github.com/wenhao/jpa-spec-->
<dependency>
    <groupId>com.github.wenhao</groupId>
    <artifactId>jpa-spec</artifactId>
    <version>3.2.4</version>
</dependency>

配置

jpa:
  #打印sql
  show-sql: true
org.hibernate.type.descriptor.sql.BasicBinder: trace


spring boot 2.1 版本无效

查看全部评论