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

 更新时间:2024年07月30日 09:33:27   作者:成为大佬先秃头  
本文主要介绍了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

到此这篇关于SpringBoot整合MyBatis和MyBatis-Plus请求后不打印sql日志的问题解决的文章就介绍到这了,更多相关SpringBoot不打印sql日志内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • java使用list实现数据库的like功能

    java使用list实现数据库的like功能

    这篇文章主要介绍了java使用list实现数据库的like功能,需要的朋友可以参考下
    2014-04-04
  • SpringBoot Validation快速实现数据校验的示例代码

    SpringBoot Validation快速实现数据校验的示例代码

    在实际开发中,肯定会经常遇到对参数字段进行校验的场景,通常我们只能写大量的if else来完成校验工作,而如果使用SpringBoot Validation则可以轻松的通过注解来完成,接下来小编给大家介绍下利用SpringBoot Validation快速实现数据校验的示例代码,需要的朋友参考下吧
    2022-06-06
  • SpringBoot2.x设置Session失效时间及失效跳转方式

    SpringBoot2.x设置Session失效时间及失效跳转方式

    这篇文章主要介绍了SpringBoot2.x设置Session失效时间及失效跳转方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • Spring Boot 核心模块详解(12 个模块详解及作用说明)

    Spring Boot 核心模块详解(12 个模块详解及作用说明)

    和 Spring 框架一样,Spring Boot 框架也是由许多核心模块组成的,每个模块负责不同的功能点,本文讲着重于介绍 Spring Boot 相关的 12 个模块的作用和功能,感兴趣的朋友一起看看吧
    2025-04-04
  • IntellJ idea使用FileWatch实时编译less文件的方法

    IntellJ idea使用FileWatch实时编译less文件的方法

    这篇文章主要介绍了IntellJ idea使用FileWatch实时编译less文件的相关资料,需要的朋友可以参考下
    2018-02-02
  • 微服务架构之使用RabbitMQ进行异步处理方式

    微服务架构之使用RabbitMQ进行异步处理方式

    本文介绍了RabbitMQ的基本概念、异步调用处理逻辑、RabbitMQ的基本使用方法以及在Spring Boot项目中使用RabbitMQ解决高并发问题,RabbitMQ是一种流行的消息队列实现,支持异步通信,可以有效解耦应用程序的不同部分,并将任务分发给多个消费者
    2025-02-02
  • mybatis的insert插入后获取自增id的方法详解(从controller到mapper)

    mybatis的insert插入后获取自增id的方法详解(从controller到mapper)

    这篇文章主要介绍了mybatis的insert插入后获取自增id的示例代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-10-10
  • Spring Boot 2.x升3.x的那些事

    Spring Boot 2.x升3.x的那些事

    最近项目需求,准备从Spring Boot 2.x升级到3.x,升级后发现编译器报了一堆错误,本文主要介绍了Spring Boot 2.x升3.x的那些事,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • 使用EasyPoi轻松导入导出Excel文档的方法示例

    使用EasyPoi轻松导入导出Excel文档的方法示例

    这篇文章主要介绍了使用EasyPoi轻松导入导出Excel文档的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • Java解析http协议字符串的方法实现

    Java解析http协议字符串的方法实现

    本文主要介绍了Java解析http协议字符串的方法实现,我们探讨了如何使用Java解析HTTP协议字符串,并将其封装成了一个HttpRequest类,具有一定的参考价值,感兴趣的可以了解一下
    2023-09-09

最新评论