mybatis打印SQL,并显示参数

这篇博客介绍了如何在MyBatis中配置日志,以便打印SQL语句及其参数。通过在数据源配置文件中添加特定配置,并创建logback.xml文件来实现日志输出。配置包括设置logback的日志级别、过滤器以及指定输出格式,使得开发者能够方便地查看和调试SQL执行情况。

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

在maven的pom.xml里面添加一下依赖:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.version>3.2.4.RELEASE</spring.version>
<version.slf4j>1.7.6</version.slf4j>
<version.logback>1.1.2</version.logback>
</properties>
<!-- log -->
		<dependency>
			<groupId>org.lazyluke</groupId>
			<artifactId>log4jdbc-remix</artifactId>
			<version>0.2.7</version>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>${version.slf4j}</version>
		</dependency>
		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-classic</artifactId>
			<version>${version.logback}</version>
		</dependency>
		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-access</artifactId>
                        <version>${version.logback}</version>
		</dependency>
		<dependency>
			<groupId>org.logback-extensions</groupId>
			<artifactId>logback-ext-spring</artifactId>
			<version>0.1.2</version>
		</dependency>
<!--jul桥接 用来输出 Java Logging Framework (JUL) -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
<version>${version.slf4j}</version>
/dependency>


<!-- jcl桥接,用来输出 第三方Jakarta Commons Logging (JCL) -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>${version.slf4j}</version>
</dependency>

然后在数据源的配置文件添加以下配置:

<bean id="dataSource" class="net.sf.log4jdbc.Log4jdbcProxyDataSource">
		<constructor-arg ref="dataSourceSpied" />
	</bean>(此处数据源用来代理原有的数据源,注入sessionfactory的时候用此处的dataSource)

<bean id="dataSource" class="net.sf.log4jdbc.Log4jdbcProxyDataSource">
		<constructor-arg ref="dataSourceSpied" />
	</bean>(此处数据源用来代理原有的数据源,注入sessionfactory的时候用此处的dataSource)

最后添加一个配置的logback.xml文件:

<?xml version="1.0" encoding="UTF-8"?>


<!-- scan 当此属性设置为true时,配置文件如果发生改变,将会被重新加载, 默认值为true。 -->
<!-- scanPeriod 设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。 当scan为true时,此属性生效。 默认的时间间隔为1分钟。 -->
<!-- debug 当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。 默认值为false。 -->
<configuration scan="true" scanPeriod="60" debug="false">
<substitutionProperty name="log.base" value="c:/" />
<contextName>${tomcatName}${catalina.home}</contextName>


<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>


<!-- 注意 logback 的括号需要转义 -->
<encoder charset="UTF-8" class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>[%-5level] %d{MM-dd HH:mm:ss} \(%F:%L\) %method\(\) - %m%n
</pattern>
</encoder>
</appender>

<!-- 此处配置用来只打印sql语句,若还想打印其他可注释此处代码-->
<logger name="jdbc.sqltiming" level="INFO" />
<logger name="jdbc" level="ERROR" />


<root level="INFO">
<appender-ref ref="CONSOLE" />
</root>
</configuration>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值