0


解决SpringBoot整合MyBatis和MyBatis-Plus,请求后不打印sql日志

问题发现

在整合springBoot+myBatis时,发现请求不打印sql日志,示例代码如下:

  1. @RestControllerpublicclassMyController{@AutowiredProductMapper productMapper;@GetMapping("/test")publicvoidtest(){System.out.println("进来了");
  2. productMapper.list();System.out.println("执行完毕");}}@MapperpublicinterfaceProductMapper{List<Product>list();}
  1. <?xml version="1.0" encoding="UTF-8"?><!DOCTYPEmapperPUBLIC"-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mappernamespace="com.example.demo.mapper.ProductMapper"><resultMapid="BaseResultMap"type="com.example.demo.domain.Product"><idproperty="id"column="id"jdbcType="INTEGER"/><resultproperty="productName"column="product_name"jdbcType="VARCHAR"/><resultproperty="number"column="number"jdbcType="INTEGER"/></resultMap><sqlid="Base_Column_List">
  2. id,product_name,number
  3. </sql><selectid="list"resultMap="BaseResultMap">
  4. select * from product
  5. </select></mapper>

执行结果如图:
在这里插入图片描述

问题解决

然后使用本地

  1. main

方法访问SqlSession的时候又可以打印日志

  1. @RunWith(SpringRunner.class)@SpringBootTest@EnableAutoConfiguration(exclude ={DataSourceAutoConfiguration.class})publicclassTest{publicstaticvoidmain(String[] args)throwsIOException{// 创建配置文件输入流InputStream inputStream =Resources.getResourceAsStream("mybatis-config.xml");// 根据配置文件创建 SqlSessionFactorySqlSessionFactory sqlSessionFactory =newSqlSessionFactoryBuilder().build(inputStream);try(SqlSession sqlSession = sqlSessionFactory.openSession();){ProductMapper mapper = sqlSession.getMapper(ProductMapper.class);
  2. mapper.list();}}}

执行结果如图
在这里插入图片描述
百度后发现,本地访问通过加载

  1. mybatis-config.xml

,会默认打印日志。

springBoot需要手动开启日志才行,具体配置如下:

  1. #默认使用 mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
  2. mybatis.configuration.log-impl=org.apache.ibatis.logging.log4j.Log4jImpl

如果你使用log4j,需要创建

  1. log4j. properties

文件:

  1. #将等级为DEBUG的日志信息输出到console和file这两个目的地,console和file的定义在下面的代码
  2. log4j.rootLogger=DEBUG,console,file
  3. #控制台输出的相关设置
  4. log4j.appender.console = org.apache.log4j.ConsoleAppender
  5. log4j.appender.console.Target = System.out
  6. log4j.appender.console.Threshold=DEBUG
  7. log4j.appender.console.layout = org.apache.log4j.PatternLayout
  8. #定义日志输出的格式模式
  9. log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
  10. #文件输出的相关设置
  11. log4j.appender.file = org.apache.log4j.RollingFileAppender
  12. log4j.appender.file.File=./log/main.log
  13. log4j.appender.file.MaxFileSize=10mb
  14. log4j.appender.file.Threshold=DEBUG
  15. log4j.appender.file.layout=org.apache.log4j.PatternLayout
  16. #定义日志输出的格式模式
  17. log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
  18. #日志输出级别
  19. log4j.logger.org.mybatis=DEBUG
  20. log4j.logger.java.sql=DEBUG
  21. log4j.logger.java.sql.Statement=DEBUG
  22. log4j.logger.java.sql.ResultSet=DEBUG
  23. log4j.logger.java.sql.PreparedStatement=DEBUG

执行结果如图

在这里插入图片描述
如果你使用的是MyBatis-Plus,也需要手动开启日志,配置如下:

  1. mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.log4j.Log4jImpl
标签: spring boot mybatis sql

本文转载自: https://blog.csdn.net/qq_39940674/article/details/138770650
版权归原作者 成为大佬先秃头 所有, 如有侵权,请联系我们删除。

“解决SpringBoot整合MyBatis和MyBatis-Plus,请求后不打印sql日志”的评论:

还没有评论