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

问题发现

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

@RestController
public class MyController {
    @Autowired
    ProductMapper productMapper;

    @GetMapping("/test")
    public void test() {
        System.out.println("进来了");
        productMapper.list();
        System.out.println("执行完毕");
    }
}
@Mapper
public interface ProductMapper {
    List<Product> list();
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.ProductMapper">

    <resultMap id="BaseResultMap" type="com.example.demo.domain.Product">
            <id property="id" column="id" jdbcType="INTEGER"/>
            <result property="productName" column="product_name" jdbcType="VARCHAR"/>
            <result property="number" column="number" jdbcType="INTEGER"/>
    </resultMap>

    <sql id="Base_Column_List">
        id,product_name,number
    </sql>
    <select id="list" resultMap="BaseResultMap">
        select * from product
    </select>
</mapper>

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

问题解决

然后使用本地main方法访问SqlSession的时候又可以打印日志

@RunWith(SpringRunner.class)
@SpringBootTest
@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class})
public class Test {
    public static void main(String[] args) throws IOException {
        // 创建配置文件输入流
        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
        // 根据配置文件创建 SqlSessionFactory
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        try(SqlSession sqlSession = sqlSessionFactory.openSession();) {
            ProductMapper mapper = sqlSession.getMapper(ProductMapper.class);
            mapper.list();
        }
    }
}

执行结果如图
在这里插入图片描述
百度后发现,本地访问通过加载mybatis-config.xml,会默认打印日志。

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

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

如果你使用log4j,需要创建log4j. properties文件:

#将等级为DEBUG的日志信息输出到console和file这两个目的地,console和file的定义在下面的代码
log4j.rootLogger=DEBUG,console,file

#控制台输出的相关设置
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.Target = System.out
log4j.appender.console.Threshold=DEBUG
log4j.appender.console.layout = org.apache.log4j.PatternLayout
#定义日志输出的格式模式
log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
#文件输出的相关设置
log4j.appender.file = org.apache.log4j.RollingFileAppender
log4j.appender.file.File=./log/main.log
log4j.appender.file.MaxFileSize=10mb
log4j.appender.file.Threshold=DEBUG
log4j.appender.file.layout=org.apache.log4j.PatternLayout
#定义日志输出的格式模式
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
#日志输出级别
log4j.logger.org.mybatis=DEBUG
log4j.logger.java.sql=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

执行结果如图

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

mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.log4j.Log4jImpl

相关推荐

  1. 打印mybatissql

    2024-05-14 06:10:14       6 阅读
  2. SpringBoot整合MyBatis-Plus

    2024-05-14 06:10:14       38 阅读
  3. springBoot mybatis-plus整合

    2024-05-14 06:10:14       17 阅读
  4. springboot整合mybatis-plus

    2024-05-14 06:10:14       12 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-14 06:10:14       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-14 06:10:14       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-14 06:10:14       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-14 06:10:14       18 阅读

热门阅读

  1. MASK-RCNN自定义数据集优化思路(pytorch)

    2024-05-14 06:10:14       9 阅读
  2. ffmpeg

    2024-05-14 06:10:14       10 阅读
  3. Vue2 实现前端分页

    2024-05-14 06:10:14       7 阅读
  4. Element-UI快速入门

    2024-05-14 06:10:14       10 阅读
  5. 人大金仓参数查看和设置

    2024-05-14 06:10:14       10 阅读
  6. 记录解决问题--redis ssl连接

    2024-05-14 06:10:14       8 阅读
  7. MySQL中的多表设计

    2024-05-14 06:10:14       8 阅读
  8. 【PyTorch】torch.distributed()的含义和使用方法

    2024-05-14 06:10:14       9 阅读