Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 626e942

Browse files
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)

AltStyle によって変換されたページ (->オリジナル) /