環境說明: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
