1. 程式人生 > >mybatis列印SQL,並顯示引數

mybatis列印SQL,並顯示引數

在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>