Mybatis拦截器打印sql

本文介绍了如何在SpringBoot项目中通过Mybatis拦截器实现SQL日志的详细打印,包括关闭log4j2默认配置,配置日志开关,添加拦截器插件,以及详细的拦截器逻辑步骤,旨在解决因参数替换导致的不便,提供更方便的SQL查看和执行体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在项目中,通常会配置log4j2等来输出mybatis的sql,为了防止sql注入问题,我们通常会使用#{}的方式来注入sql的参数,这会导致我们拿到的sql日志是没替换参数的,参数都是通过问号?占位符的方式。当我们需要拿下sql去数据库客户端执行的时候,就会有一个困扰:需要把一个个问号?替换成对应的参数,假设在insert的sql中插入一个有几十个字段的表,那将会是一场噩梦。那有没有办法在日志文件记录完整的sql呢?详细请看下面步骤。

  1. log4j2配置修改

关闭log4j2打印mybatis的sql配置,如果本来就没开启,那不需要。

  1. 配置日志开关

在springboot的yml文件配置变量logging.sql.enable=true,对拦截器做开关控制

  1. 添加拦截器插件

// 采用自定义拦截器打印sql日志
sessionFactory.setPlugins(new Interceptor[]{this.getSqlLogInterceptor()});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值