mybatis-plus: 打印sql
时间: 2025-01-30 16:11:53 浏览: 114
### 配置 MyBatis-Plus 打印 SQL 语句
为了使 MyBatis-Plus 能够打印执行的 SQL 语句,在 `application.properties` 或者 `application.yml` 文件中设置相应的日志级别可以实现这一需求。
对于基于 Spring Boot 的项目,通过调整 Logback 日志框架的日志等级来控制 MyBatis-Plus 输出 SQL 语句。具体来说就是修改 `logging.level` 属性下的特定包名为 `DEBUG` 级别:
#### 使用 application.properties 文件配置
```properties
# 设置 mybatis-plus 和 sql 语句的日志级别为 DEBUG
logging.level.com.baomidou.mybatisplus=DEBUG
logging.level.sql=DEBUG
```
#### 使用 application.yml 文件配置
```yaml
logging:
level:
com:
baomidou:
mybatisplus: debug
sql: debug
```
上述配置会使得应用程序运行期间所有的 SQL 查询都被记录下来并显示在控制台或指定的日志文件里[^3]。
另外需要注意的是,在引入 MyBatis-Plus 后不再推荐单独引入 MyBatis 及其扩展组件如 MyBatis-Spring ,以免造成不必要的冲突和兼容性问题[^1]。
相关问题
mybatis-plus中打印sql耗时的插件
Mybatis-plus中打印SQL耗时的插件是 PerformanceInterceptor。它是一个拦截器,可以在SQL执行前后计算执行时间,并打印SQL相关的统计信息。在Mybatis-plus中,可以通过在配置文件中配置PerformanceInterceptor来启用该插件。具体配置方式如下:
```java
@Configuration
public class MybatisPlusConfig {
@Bean
public PerformanceInterceptor performanceInterceptor() {
PerformanceInterceptor performanceInterceptor = new PerformanceInterceptor();
// 是否格式化SQL语句
performanceInterceptor.setFormat(true);
// SQL语句执行超过指定毫秒数后输出日志
performanceInterceptor.setMaxTime(100);
return performanceInterceptor;
}
}
```
配置完成后,每次执行SQL语句时,都会在控制台输出类似以下的信息:
```
Time:41 ms - ID:com.example.mapper.UserMapper.selectList
Execute SQL:SELECT * FROM user
```
其中,Time表示SQL执行时间,ID表示SQL执行的方法名,Execute SQL表示具体执行的SQL语句。
mybatis-plus: global-config: # 控制台 不打印 mybatis-plus 的 LOGO banner: false configuration: map-underscore-to-camel-case: true # 如果查询结果中包含空值的列,则 MyBatis 在映射的时候,不会映射这个字段 call-setters-on-nulls: true # 这个配置会将执行的sql打印出来,在开发或测试的时候可以用 log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
这段代码是Mybatis-Plus的全局配置,包括以下几个方面:
1. 控制台不打印Mybatis-Plus的LOGO,即启动应用时不显示Mybatis-Plus的logo。
2. 将数据库中下划线命名方式转换为Java驼峰命名方式,例如:user_name转为userName。
3. 如果查询结果中包含空值的列,则Mybatis在映射的时候,不会映射这个字段。
4. 打印执行的SQL语句,方便开发或测试时调试。
其中,map-underscore-to-camel-case是Mybatis-Plus的一个特性,可以自动将数据库中下划线命名方式转换为Java驼峰命名方式,避免手动转换的繁琐和错误。
call-setters-on-nulls是Mybatis的一个配置,表示如果查询结果中包含空值的列,则会通过setter方法将该字段的值设置为null,避免空指针异常。
log-impl表示打印执行的SQL语句的日志实现方式,这里是将日志打印到控制台上。
阅读全文
相关推荐
















