一. jpa怎么打印sql語句?
現在網上的辦法大多是:在properties文件中添加: spring.jpa.show-sql=true.
這樣可以嗎?可以.但是系統是用System.out.println方法打印的,不好管理.
我想使用圖片中1的log打印怎么設置呢?
在logback.xml中加入<logger name="org.hibernate.SQL" level="DEBUG"/>就可以了.
二.jpa怎么打印參數?
上面的配置,只能打印sql語句,sql中需要的參數沒有輸出出來.
<logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="trace" />
加入上面的logger配置,就可以打印sql參數了.
三.jpa打印的select語句超級多,我不想看到select sql語句怎么辦?
給appender輸出添加過濾器就行了.
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
<evaluator> <!-- defaults to type ch.qos.logback.classic.boolex.JaninoEventEvaluator -->
<expression>return message.contains("select");</expression>
</evaluator>
<OnMismatch>NEUTRAL</OnMismatch>
<OnMatch>DENY</OnMatch>
</filter>
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<charset>utf8</charset>
</encoder>
</appender>
添加這個filter應該還需要引入一個jar,否則啟動報錯.
<dependency> <groupId>org.codehaus.janino</groupId> <artifactId>janino</artifactId> <version>3.0.7</version> </dependency>
方式 一:
########################################################
###配置打印sql
########################################################
logging:
level:
com.threefivework.mymall.dao.mapper: DEBUG //包路徑為mapper文件包路徑
方式二:
在application.yml(.properties)中增加配置,在控制台打印sql:
mybatis configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
參考類:org.apache.ibatis.session.Configuration
log-impl指定的值為org.apache.ibatis.logging.Log接口的某個實現類