MyBatis控制台输出sql

MyBatis控制台输出sql

在MyBatis配置中的sqlSessionFactory中加上下面一句配置
<property name="configLocation" value="classpath:mybatis-config.xml" />

在这里插入图片描述

可通过全局搜索sqlSessionFactory来找到代码位置进行配置
注意:如果项目中没有mybatis-config.xml配置,需要创建,代码如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING" />
    </settings>
</configuration>

控制台输出效果如下:
在这里插入图片描述

<think>嗯,用户这次的问题是关于配置MyBatis控制台打印SQL方法。用户之前已经给出了三个站内引用,其中引用[1]和[2]直接涉及配置方法,引用[3]是MyBatis Plus的依赖配置。 用户可能正在开发基于Spring Boot的MyBatis项目,遇到了SQL日志不输出的问题。从ta明确要求"控制台打印SQL"来看,应该是在调试阶段需要实时查看SQL语句。考虑到MyBatis有原生版本和Plus版本的区别,需要分开说明。 引用[1]提供了完整的yml配置示例,包含两个关键点:mybatis-plus的log-impl设置和logging.level全局日志级别。引用[2]展示的是原生MyBatis的配置方式,但没有提日志级别。这里有个技术细节要注意:即使配置了log-impl,如果全局日志级别过高(比如INFO)也不会输出SQL,所以必须同时设置DEBUG级别。 用户可能混淆了MyBatisMyBatis Plus的配置差异。在回答时需要明确区分:原生MyBatis用configuration.log-impl,而Plus用mybatis-plus.configuration.log-impl。另外注意到引用[3]的依赖版本是3.3.1,这个细节值得保留,因为Plus的配置项在不同版本有差异。 准备在回复时采用分段式解决方案:先讲Plus版本的完整配置(结合引用[1]和[3]),再说明原生MyBatis的配置(引用[2]补充日志级别)。最后要强调常见的配置无效原因,比如全局日志级别不足或配置位置错误——这些是开发者最容易踩的坑。 用户应该需要立即可用的解决方案,所以代码块要完整可复制。但ta可能也会遇到环境差异问题,所以再补充了properties配置格式和logback的配置要点。那些"注意事项"其实是根据常见故障场景反推的,比如多数据源时需要单独指定SqlSessionFactoryBean。 </think>根据配置框架不同,MyBatis 控制台打印 SQL 主要有以下几种方法: ### 一、MyBatis-Plus 配置方案(推荐) ```yaml # application.yml 配置 mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 关键配置[^1] logging: level: root: DEBUG # 必须开启DEBUG级别[^1] ``` **依赖要求**: ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.3.1+</version> <!-- 版本需匹配 --> [^3] </dependency> ``` ### 二、原生 MyBatis 配置方案 ```yaml # application.yml mybatis: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # SQL输出核心配置[^2] logging: level: com.your.mapper.package: DEBUG # 指定Mapper包路径[^2] ``` ### 三、.properties 文件格式 ```properties # application.properties mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl logging.level.com.example.mapper=DEBUG ``` ### 四、注意事项 1. **双重日志问题**: - 若出现重复SQL日志,排除其他日志框架的干扰 ```xml <!-- 排除SpringBoot默认日志 --> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> ``` 2. **多数据源配置**: ```java @Bean public SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource) { SqlSessionFactoryBean factory = new SqlSessionFactoryBean(); factory.setConfiguration(new Configuration() {{ setLogImpl(StdOutImpl.class); // 编程式配置[^2] }}); return factory; } ``` 3. **Logback 单独配置**(当使用logback.xml时): ```xml <logger name="com.your.mapper" level="DEBUG"/> ``` > ⚠️ **配置无效排查**: > 1. 检查依赖冲突(尤其MyBatisMyBatis-Plus混用) > 2. 确认`log-impl`拼写正确(注意中划线) > 3. 重启服务使配置生效 ### 五、输出效果示例 ```sql ==> Preparing: SELECT * FROM user WHERE id = ? ==> Parameters: 100(Integer) <== Columns: id, name <== Row: 100, 张三 <== Total: 1 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值