SpringBoot 2.0.1 控制台打印SQL语句的三种方式

今天在对接口的时候发现查询一直有空的字段,然后试着打印SQL语句看下,结果试了两种方式都没能正常打印出SQL语句,最后试了第三种才可以。

1. show-sql

这种方式我记得是很好用的,之前用过,这次就不好使了,不知道是不是使用的jar包的区别。

spring:
  jpa:
    show-sql: true

2. logging

logging:
  level:
    org:
      hibernate:
        SQL: DEBUG

这种方式试了一下仍然不好使。

3. logImpl (使用mybatis.xml配置)

发现刚好项目中还有一个xml文件,对于SpringBoot而言,xml配置使用的是少之又少了,然后试了一下果然显示SQL语句了。

如果没有mybatis.xml文件的话,直接在项目的properties文件中添加如下配置也是一样的:

mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

由于我的yml里面配置了mybatis.xml文件,所以我直接在mybatis.xml文件里面配置了

# Mybatis配置
mybatis:
    mapperLocations: classpath:mapper/**/*.xml
    configLocation: classpath:mybatis.xml


<configuration>
    <settings>
        <setting name="mapUnderscoreToCamelCase" value="true" />
        
        <setting name="logImpl" value="STDOUT_LOGGING" />
    settings>
configuration>

效果如下:

Creating a new SqlSession
SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@607343f1] was not registered for synchronization because synchronization is not active
JDBC Connection [HikariProxyConnection@933141587 wrapping com.mysql.jdbc.JDBC4Connection@54604786] will not be managed by Spring
==>  Preparing: select role_id from sys_user_role where user_id = ? 
==> Parameters: 38(Long)
<==    Columns: role_id
<==        Row: 1
<==      Total: 1
Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@607343f1]

可以看到每次创建连接和关闭连接的信息都会在控制台中显示出来。

你可能感兴趣的:(SpringBoot)