Java:使用spring-boot + mybatis如何打印SQL日志?

1、pom.xml引入mybatis-spring-boot

XML 复制代码
<dependency>
  <groupId>org.mybatis.spring.boot</groupId>
  <artifactId>mybatis-spring-boot-starter</artifactId>
  <version>2.1.4</version>
</dependency>

2、application.yaml添加log实现

XML 复制代码
mybatis:
  configuration:
    logImpl: org.apache.ibatis.logging.slf4j.Slf4jImpl

除了slf4j外还有其它的日志库可以用,支持的日志库可以在org.apache.ibatis.logging下找到。

3、logback.xml添加appender

XML 复制代码
<logger name="com.example.dao" level="debug" additivity="false">
   <appender-ref ref="fileAppender" />
</logger>

如果底层使用的是logback,则需要添加以上配置。

其中com.example.dao是*.mapper.xml文件中namespace的前缀。这样mapper文件中namespace凡是以com.example.dao开头的,都会转出到文件中。

*.mapper.xml文件举例如下:

XML 复制代码
<mapper namespace="com.example.dao.apiDao">

   <select id="queryList" resultType="...">
      select * from api_info
   </select>

</mapper>

每个SQL都会生成一个StatementLog,它是在org.apache.ibatis.mapping.MappedStatement中创建的。

4、输出的结果

==> Preparing: select * from api_info

==> Parameters:

<== Total: 10

相关推荐
架构师沉默5 分钟前
Java 终于有自己的 AI Agent 框架了?
java·后端·架构
程序员爱酸奶6 分钟前
ThreadLocal内存泄漏深度解析
java
givemeacar11 分钟前
Spring Boot中集成MyBatis操作数据库详细教程
数据库·spring boot·mybatis
czlczl2002092515 分钟前
JVM创建对象过程
java·开发语言
一直都在57233 分钟前
线程间的通信
java·jvm
GIOTTO情1 小时前
Infoseek危机公关全链路技术解析:基于近期热点舆情的落地实践
java
我是人✓1 小时前
从零入门 Servlet:JavaWeb 核心组件的实操与理解
java·servlet
lay_liu1 小时前
Spring Boot 自动配置
java·spring boot·后端
殷紫川2 小时前
线上故障零扩散:全链路监控、智能告警与应急响应 SOP 完整落地指南
java·架构·监控
前端小雪的博客.2 小时前
Java的面向对象:封装详解(0基础入门版)
java·java入门·java面向对象·封装详解·java封装·0基础学java·getter和setter