MyBatis通过自行配置的方式输出日志

本文介绍了一种在不使用独立配置文件或Log4j的情况下,通过Spring配置文件中的SqlSessionFactoryBean来设置MyBatis输出SQL语句的方法。具体操作是在Spring配置文件中创建Configuration Bean,并设置logImpl属性为StdOutImpl,实现控制台输出。
部署运行你感兴趣的模型镜像

Hibernate的配置中有show_sql这种参数来控制打印出sql语句,MyBatis中其实也有类似的参数,在MyBatis自己的配置文件中就有,但这种方式必须单独设置MyBatis配置文件,如果MyBatis和Spring集成后,单独的配置文件就没有任何必要存在了。

当然还可以配置Log4j的配置文件打印参数,这种方式最为常用。我今天只是探讨一下不用单独配置文件,不用Log4j的方式进行sql输出。

首先看Spring的配置文件,里面肯定会配置SqlSessionFactoryBean,那么就打开这个类,看到有个Configuration类的成员变量,这个类就是MyBatis单独配置文件的封装类,打开这个类,看到logImpl这个属性,熟悉吧?这个就是MyBatis控制日志输出的属性。

于是我就在Spring配置文件里配了个Configuration类的bean:

    <bean id="mybatisConfiguration" class="org.apache.ibatis.session.Configuration">
      <property name="logImpl" value="org.apache.ibatis.logging.stdout.StdOutImpl"/>
    </bean>

其中logImpl的属性就是标准控制台输出类,怎么找到这个标准控制台输出类呢?其实很简单,logImpl是Class类型,泛型为? extends Log,也就是接收一个Log实现类,然后寻找Log实现类即可,其中StdOutImpl就是Log实现类,表示在控制台输出日志的。

然后将configuration属性引用上面那个mybatisConfiguration即可,这样就减少了配置文件的数目。

经过本人单元测试,可以输出sql语句。

当然这种方法并没有很强的现实意义,就是看着玩玩而已。


您可能感兴趣的与本文相关的镜像

Llama Factory

Llama Factory

模型微调
LLama-Factory

LLaMA Factory 是一个简单易用且高效的大型语言模型(Large Language Model)训练与微调平台。通过 LLaMA Factory,可以在无需编写任何代码的前提下,在本地完成上百种预训练模型的微调

### MyBatis Plus 中的日志打印配置 在 Spring Boot 和 MyBatis-Plus 的集成环境中,可以通过多种方式实现 SQL 日志的打印功能。以下是详细的说明: #### 使用 `application.properties` 文件配置 可以在项目的 `application.properties` 文件中添加如下配置来启用 MyBatis-Plus 的日志打印功能[^2]: ```properties # 开启 MyBatis-Plus SQL 打印功能 mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl ``` 此配置会将所有的 SQL 查询语句以及参数信息输出到控制台。 --- #### 使用 `application.yml` 文件配置 如果项目使用的是 YAML 格式的配置文件,则可以按照以下方式进行设置[^3]: ```yaml mybatis-plus: # 配置 XML 映射文件的位置 mapper-locations: classpath:com/java/**/*Mapper.xml configuration: # 启用日志打印 log-impl: org.apache.ibatis.logging.stdout.StdOutImpl call-setters-on-nulls: true ``` 上述配置不仅开启了日志打印功能,还设置了当字段为 null 时调用 setter 方法的行为。 --- #### 自定义 Log 实现类 除了默认的标准输出日志外,还可以自定义日志实现类以满足特定需求。例如,可以选择其他日志框架(如 SLF4J 或 Log4j),只需替换 `log-impl` 属性中的值即可。例如: ```properties mybatis-plus.configuration.log-impl=com.example.CustomLogger ``` 其中 `CustomLogger` 是开发者自行编写的日志处理逻辑类。 --- #### 控制台输出样例 成功配置后,在运行程序时,控制台上将会显示类似于以下的内容: ```plaintext DEBUG [http-nio-8080-exec-1] c.b.m.mapper.UserMapper.selectList - ==> Preparing: SELECT id, name FROM user WHERE age > ? DEBUG [http-nio-8080-exec-1] c.b.m.mapper.UserMapper.selectList - ==> Parameters: 18(Integer) DEBUG [http-nio-8080-exec-1] c.b.m.mapper.UserMapper.selectList - <== Total: 5 ``` 这表明 SQL 语句及其执行参数已被正确记录并展示出来。 --- #### 注意事项 为了防止生产环境暴露敏感数据,建议仅在开发阶段开启此类详细级别的日志打印;而在正式部署前关闭或调整至较低等级的日志级别。 ---
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值