Spring Boot整合Mybatis后,如何配置显示详细的SQL执行日志?
- 内容介绍
- 文章标签
- 相关推荐
本文共计642个文字,预计阅读时间需要3分钟。
在Spring Boot集成Mybatis的项目中,若出现SQL语句执行问题,我们需要进行排查。此时,需要打印出对应的SQL语句,以便分析问题。那么,如何操作才能正常打印出响应的SQL语句呢?
实际上,操作非常简单。在Mybatis配置中,我们可以通过以下步骤来实现:
1. 在`mybatis-config.xml`或相应的配置类中,设置``标签,添加``。
2. 这样配置后,Mybatis会自动将执行的SQL语句打印到控制台。
例如:
xml
或者使用Java配置类:
java@Configurationpublic class MybatisConfig { @Bean public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws IOException { SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder(); SqlSessionFactory sqlSessionFactory=sqlSessionFactoryBuilder.build(dataSource, new Configuration().setLogImpl(LogFactoryImpl.class)); return sqlSessionFactory; }}
这样配置后,每当执行SQL语句时,对应的SQL语句就会直接打印到控制台,方便我们排查问题。
在Spring Boot集成Mybatis的项目中,如果出现SQL语句执行问题,我们需要进行排查。此时就需要打印对应的SQL语句,那么该如何操作才能正常打印出对应的SQL语句呢?
其实操作非常简单,在application.properties或application.yml文件中配置对应mapper所在包的日志级别即可。
示例如下:
logging.level.com.secbro.mapper=debug
其中“logging.level.”为前缀,“com.secbro.mapper”为Mapper接口所在的包路径。对应的value值为日志的级别。
此时,再执行查询程序,就会打印出对应的SQL日志信息来。
对应的Mapper文件比如:
package com.secbro.mapper; import com.secbro.model.Order; import org.apache.ibatis.annotations.*; import java.util.List; /** * @author sec * @version 1.0 * @date 2020/3/1 10:01 AM **/ public interface OrderMapper { /** * 更新订单 * * @param order 订单信息 * @return 记录数 */ @Update("UPDATE tb_order SET order_no = #{orderNo},amount = #{amount} WHERE id =#{id}") int update(Order order); }
注意package的路径对照。
添加debug打印之后,执行一条单元测试,对应的日志信息如下:
2020-04-02 21:43:39.466 INFO 92784 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... 2020-04-02 21:43:39.869 INFO 92784 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. 2020-04-02 21:43:39.881 DEBUG 92784 --- [ main] com.secbro.mapper.OrderMapper.update : ==> Preparing: UPDATE tb_order SET order_no = ?,amount = ? WHERE id =? 2020-04-02 21:43:39.917 DEBUG 92784 --- [ main] com.secbro.mapper.OrderMapper.update : ==> Parameters: N001(String), 8888(Integer), 1(Integer) 2020-04-02 21:43:39.921 DEBUG 92784 --- [ main] com.secbro.mapper.OrderMapper.update : <== Updates: 1 2020-04-02 21:43:39.939 INFO 92784 --- [extShutdownHook] o.s.s.concurrent.ThreadPoolTaskExecutor : Shutting down ExecutorService 'applicationTaskExecutor' 2020-04-02 21:43:39.940 INFO 92784 --- [extShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated... 2020-04-02 21:43:39.949 INFO 92784 --- [extShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed.
其中,我们可以很清楚的看到对应的SQL语句,参数以及执行结果。
到此这篇关于Spring Boot集成Mybatis中如何显示日志的实现的文章就介绍到这了,更多相关Spring Boot Mybatis显示日志内容请搜索易盾网络以前的文章或继续浏览下面的相关文章希望大家以后多多支持易盾网络!
本文共计642个文字,预计阅读时间需要3分钟。
在Spring Boot集成Mybatis的项目中,若出现SQL语句执行问题,我们需要进行排查。此时,需要打印出对应的SQL语句,以便分析问题。那么,如何操作才能正常打印出响应的SQL语句呢?
实际上,操作非常简单。在Mybatis配置中,我们可以通过以下步骤来实现:
1. 在`mybatis-config.xml`或相应的配置类中,设置``标签,添加``。
2. 这样配置后,Mybatis会自动将执行的SQL语句打印到控制台。
例如:
xml
或者使用Java配置类:
java@Configurationpublic class MybatisConfig { @Bean public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws IOException { SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder(); SqlSessionFactory sqlSessionFactory=sqlSessionFactoryBuilder.build(dataSource, new Configuration().setLogImpl(LogFactoryImpl.class)); return sqlSessionFactory; }}
这样配置后,每当执行SQL语句时,对应的SQL语句就会直接打印到控制台,方便我们排查问题。
在Spring Boot集成Mybatis的项目中,如果出现SQL语句执行问题,我们需要进行排查。此时就需要打印对应的SQL语句,那么该如何操作才能正常打印出对应的SQL语句呢?
其实操作非常简单,在application.properties或application.yml文件中配置对应mapper所在包的日志级别即可。
示例如下:
logging.level.com.secbro.mapper=debug
其中“logging.level.”为前缀,“com.secbro.mapper”为Mapper接口所在的包路径。对应的value值为日志的级别。
此时,再执行查询程序,就会打印出对应的SQL日志信息来。
对应的Mapper文件比如:
package com.secbro.mapper; import com.secbro.model.Order; import org.apache.ibatis.annotations.*; import java.util.List; /** * @author sec * @version 1.0 * @date 2020/3/1 10:01 AM **/ public interface OrderMapper { /** * 更新订单 * * @param order 订单信息 * @return 记录数 */ @Update("UPDATE tb_order SET order_no = #{orderNo},amount = #{amount} WHERE id =#{id}") int update(Order order); }
注意package的路径对照。
添加debug打印之后,执行一条单元测试,对应的日志信息如下:
2020-04-02 21:43:39.466 INFO 92784 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... 2020-04-02 21:43:39.869 INFO 92784 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. 2020-04-02 21:43:39.881 DEBUG 92784 --- [ main] com.secbro.mapper.OrderMapper.update : ==> Preparing: UPDATE tb_order SET order_no = ?,amount = ? WHERE id =? 2020-04-02 21:43:39.917 DEBUG 92784 --- [ main] com.secbro.mapper.OrderMapper.update : ==> Parameters: N001(String), 8888(Integer), 1(Integer) 2020-04-02 21:43:39.921 DEBUG 92784 --- [ main] com.secbro.mapper.OrderMapper.update : <== Updates: 1 2020-04-02 21:43:39.939 INFO 92784 --- [extShutdownHook] o.s.s.concurrent.ThreadPoolTaskExecutor : Shutting down ExecutorService 'applicationTaskExecutor' 2020-04-02 21:43:39.940 INFO 92784 --- [extShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated... 2020-04-02 21:43:39.949 INFO 92784 --- [extShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed.
其中,我们可以很清楚的看到对应的SQL语句,参数以及执行结果。
到此这篇关于Spring Boot集成Mybatis中如何显示日志的实现的文章就介绍到这了,更多相关Spring Boot Mybatis显示日志内容请搜索易盾网络以前的文章或继续浏览下面的相关文章希望大家以后多多支持易盾网络!

