jpa hibernate 打印sql,format日志,打印SQL參數,打印什么指令


環境說明:IntelliJ IDEA 2017.3.4 版本;SpringBoot 2.0.0.RELEASE;hibernate用的是JPA自帶。

打印SQL 到控制台:

首先,我使用的是application.properties配置文件,使用yml也可以達到同樣的效果。

在網上查這個問題查了好久,基本上都是xml配置,在此不多說;

正確的properties配置項應該如下圖所示:

在jpa下一級不直接是hibernate,而是properties。

spring.jpa.properties.hibernate.show_sql=true          //控制台是否打印
spring.jpa.properties.hibernate.format_sql=true        //格式化sql語句
spring.jpa.properties.hibernate.use_sql_comments=true  //指出是什么操作生成了該語句
此時,在控制台看到的現象:Hibernate: 
    

可以看到,控制台打印了一條經過格式化之后的sql語句,並標明了這條語句是在Hibernate插入TaskWebSiteRev這個對象到數據庫的時候生成的。
 

打印SQL參數到控制台

經過上面的步驟,我們已經可以在控制台打印出格式化之后的sql語句,但是大多數情況下,我們還需要具體的sql參數值,這個時候我們就需要配置 日志配置文件。

博主使用的是slf4j的日志,配置文件用的是logback.xml,配置方式如下:

<logger name="org.hibernate.SQL" level="DEBUG"/>  //該語句控制打印SQL,如果你在yml或者properties文件里配置了“spring.jpa.properties.hibernate.show_sql=true ” ,則不需要再配置該語句

<logger name="org.hibernate.engine.QueryParameters" level="DEBUG"/>
<logger name="org.hibernate.engine.query.HQLQueryPlan" level="DEBUG"/>
<logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE"/>

直接把這三個配置丟到xml的根節點下就可以~來看一下效果:

可以看到控制台依次輸出了sql參數,並且將這些參數在數據庫中的類型也一並輸出了。
 

打印SQL到 日志

在logback.xml文件根節點下加入以下

<logger name="org.hibernate.SQL" level="DEBUG"/>

原文地址:https://blog.csdn.net/kendmr/article/details/84970687


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM