Skip to content

Commit 626e942

Browse files
authored
Merge pull request #13 from WangJi92/dev
support mybatis plus
2 parents 6a272f9 + aa68483 commit 626e942

File tree

4 files changed

+23
-25
lines changed

4 files changed

+23
-25
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ eg: logging.level.com.boot.mybatis.mybatisdemo=debug
1818
<dependency>
1919
<groupId>com.github.WangJi92</groupId>
2020
<artifactId>mybatis-sql-log</artifactId>
21-
<version>1.0.4</version>
21+
<version>1.0.6</version>
2222
</dependency>
2323
```
2424

@@ -32,7 +32,7 @@ eg: logging.level.com.boot.mybatis.mybatisdemo=debug
3232
<dependency>
3333
<groupId>com.github.WangJi92</groupId>
3434
<artifactId>mybatis-sql-log</artifactId>
35-
<version>1.0.4</version>
35+
<version>1.0.6</version>
3636
</dependency>
3737
```
3838
mybats.print=true 使用spring boot 工程集成

pom.xml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@
44
<modelVersion>4.0.0</modelVersion>
55
<groupId>com.github.WangJi92</groupId>
66
<artifactId>mybatis-sql-log</artifactId>
7-
<version>1.0.4</version>
7+
<version>1.0.6</version>
88
<name>mybatis-log</name>
9-
<description>spring boot start mybaits sql log plugins</description>
9+
<description>spring boot start mybatis sql log plugins</description>
1010
<url>https://github.com/WangJi92/mybatis-sql-log</url>
1111

1212
<properties>
1313
<java.version>1.8</java.version>
14-
<spring-boot.version>2.1.7.RELEASE</spring-boot.version>
15-
<mybatis.version>3.5.6</mybatis.version>
14+
<mybatis.version>3.5.9</mybatis.version>
15+
<spring-boot.version>2.7.18</spring-boot.version>
1616
<mybatis-spring.version>2.0.2</mybatis-spring.version>
1717
</properties>
1818

@@ -29,6 +29,7 @@
2929
<connection>https://github.com/WangJi92/mybatis-sql-log.git</connection>
3030
<developerConnection>https://github.com/WangJi92/mybatis-sql-log.git</developerConnection>
3131
</scm>
32+
3233
<developers>
3334
<developer>
3435
<name>wangji</name>
@@ -37,6 +38,7 @@
3738
</developer>
3839
</developers>
3940

41+
4042
<dependencyManagement>
4143
<dependencies>
4244
<dependency>

src/main/java/com/mybatis/spring/boot/autoconfigure/MybatisSqlCompletePrintInterceptor.java

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,11 @@
77
import org.apache.ibatis.mapping.ParameterMode;
88
import org.apache.ibatis.plugin.*;
99
import org.apache.ibatis.reflection.MetaObject;
10-
import org.apache.ibatis.scripting.defaults.DefaultParameterHandler;
1110
import org.apache.ibatis.session.Configuration;
1211
import org.apache.ibatis.session.ResultHandler;
1312
import org.apache.ibatis.type.TypeHandlerRegistry;
1413
import org.springframework.core.Ordered;
15-
import org.springframework.util.ReflectionUtils;
1614

17-
import java.lang.reflect.Field;
1815
import java.sql.Statement;
1916
import java.text.SimpleDateFormat;
2017
import java.util.Date;
@@ -37,6 +34,11 @@ public class MybatisSqlCompletePrintInterceptor implements Interceptor, Ordered
3734

3835
private Configuration configuration = null;
3936

37+
38+
public MybatisSqlCompletePrintInterceptor(Configuration configuration) {
39+
this.configuration = configuration;
40+
}
41+
4042
private static final ThreadLocal<SimpleDateFormat> DATE_FORMAT_THREAD_LOCAL = new ThreadLocal<SimpleDateFormat>() {
4143
@Override
4244
protected SimpleDateFormat initialValue() {
@@ -54,7 +56,7 @@ public Object intercept(Invocation invocation) throws Throwable {
5456
String sql = this.getSql(target);
5557
long endTime = System.currentTimeMillis();
5658
long sqlCost = endTime - startTime;
57-
log.info("SQL:{} 执行耗时={}", sql, sqlCost);
59+
log.info("SQL:{} cost={}", sql, sqlCost);
5860
}
5961
}
6062

@@ -69,12 +71,6 @@ private String getSql(Object target) {
6971
try {
7072
StatementHandler statementHandler = (StatementHandler) target;
7173
BoundSql boundSql = statementHandler.getBoundSql();
72-
if (configuration == null) {
73-
final DefaultParameterHandler parameterHandler = (DefaultParameterHandler) statementHandler.getParameterHandler();
74-
Field configurationField = ReflectionUtils.findField(parameterHandler.getClass(), "configuration");
75-
ReflectionUtils.makeAccessible(configurationField);
76-
this.configuration = (Configuration) configurationField.get(parameterHandler);
77-
}
7874
//替换参数格式化Sql语句,去除换行符
7975
return formatSql(boundSql, configuration);
8076
} catch (Exception e) {
@@ -143,7 +139,8 @@ private String formatSql(BoundSql boundSql, Configuration configuration) {
143139
paramValueStr = value + "";
144140
}
145141
// mybatis generator 中的参数不打印出来
146-
if (!propertyName.contains("frch_criterion")) {
142+
// mybatis plus 中的参数不打印出来
143+
if (!(propertyName.contains("frch_criterion") || propertyName.contains("ew.paramNameValuePairs"))) {
147144
paramValueStr = "/*" + propertyName + "*/" + paramValueStr;
148145
}
149146
// java.lang.IllegalArgumentException: Illegal group reference

src/main/java/com/mybatis/spring/boot/autoconfigure/MybatisSqlPrintAutoConfiguration.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,8 @@
22

33
import com.github.pagehelper.autoconfigure.PageHelperAutoConfiguration;
44
import org.apache.ibatis.session.SqlSessionFactory;
5-
import org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration;
65
import org.springframework.beans.factory.annotation.Autowired;
76
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
8-
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
97
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
108
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
119
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass;
@@ -16,8 +14,8 @@
1614

1715

1816
@Configuration
19-
@ConditionalOnBean(SqlSessionFactory.class)
20-
@AutoConfigureAfter(MybatisAutoConfiguration.class)
17+
@ConditionalOnClass(name = "org.apache.ibatis.session.SqlSessionFactory")
18+
@ConditionalOnExpression("${mybatis.print:true}")
2119
public class MybatisSqlPrintAutoConfiguration {
2220

2321
@Autowired
@@ -28,14 +26,14 @@ public class MybatisSqlPrintAutoConfiguration {
2826
* 或者通过原生的进行处理
2927
*/
3028
@Configuration
31-
@ConditionalOnExpression("${mybatis.print:true}")
3229
@ConditionalOnMissingClass({"com.github.pagehelper.autoconfigure.PageHelperAutoConfiguration"})
3330
public class SupportPageHelper {
3431

3532
@PostConstruct
3633
public void addPrintInterceptor() {
3734
for (SqlSessionFactory sqlSessionFactory : sqlSessionFactoryList) {
38-
MybatisSqlCompletePrintInterceptor printInterceptor = new MybatisSqlCompletePrintInterceptor();
35+
org.apache.ibatis.session.Configuration configuration = sqlSessionFactory.getConfiguration();
36+
MybatisSqlCompletePrintInterceptor printInterceptor = new MybatisSqlCompletePrintInterceptor(configuration);
3937
sqlSessionFactory.getConfiguration().addInterceptor(printInterceptor);
4038
}
4139
}
@@ -47,12 +45,13 @@ public void addPrintInterceptor() {
4745
@Configuration
4846
@ConditionalOnClass({PageHelperAutoConfiguration.class})
4947
@AutoConfigureAfter(PageHelperAutoConfiguration.class)
50-
@ConditionalOnExpression("${mybatis.print:true}")
5148
public class AutoConfigPrintInterceptor {
49+
5250
@PostConstruct
5351
public void addPrintInterceptor() {
5452
for (SqlSessionFactory sqlSessionFactory : sqlSessionFactoryList) {
55-
MybatisSqlCompletePrintInterceptor printInterceptor = new MybatisSqlCompletePrintInterceptor();
53+
org.apache.ibatis.session.Configuration configuration = sqlSessionFactory.getConfiguration();
54+
MybatisSqlCompletePrintInterceptor printInterceptor = new MybatisSqlCompletePrintInterceptor(configuration);
5655
sqlSessionFactory.getConfiguration().addInterceptor(printInterceptor);
5756
}
5857
}

0 commit comments

Comments
 (0)