diff --git a/pom.xml b/pom.xml
index cc6df87..3fbb2fe 100644
--- a/pom.xml
+++ b/pom.xml
@@ -45,13 +45,6 @@
provided
-
- com.github.pagehelper
- pagehelper-spring-boot-starter
- 1.4.5
- provided
-
-
org.projectlombok
lombok
diff --git a/src/main/java/com/github/yulichang/config/InterceptorConfig.java b/src/main/java/com/github/yulichang/config/InterceptorConfig.java
index e278645..7d0292b 100644
--- a/src/main/java/com/github/yulichang/config/InterceptorConfig.java
+++ b/src/main/java/com/github/yulichang/config/InterceptorConfig.java
@@ -1,16 +1,13 @@
package com.github.yulichang.config;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
-import com.github.pagehelper.PageHelper;
-import com.github.pagehelper.PageInterceptor;
-import com.github.pagehelper.autoconfigure.PageHelperAutoConfiguration;
+import com.github.yulichang.interceptor.MPJInterceptor;
import com.github.yulichang.toolkit.InterceptorList;
import org.apache.ibatis.logging.Log;
import org.apache.ibatis.logging.LogFactory;
import org.apache.ibatis.plugin.Interceptor;
import org.apache.ibatis.plugin.InterceptorChain;
import org.apache.ibatis.session.SqlSessionFactory;
-import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.context.annotation.Configuration;
@@ -24,7 +21,6 @@ import java.util.List;
*/
@Configuration
@ConditionalOnBean(SqlSessionFactory.class)
-@AutoConfigureBefore(value = {PageHelper.class, PageHelperAutoConfiguration.class, PageInterceptor.class})
@SuppressWarnings("unused")
public class InterceptorConfig {
@@ -53,6 +49,7 @@ public class InterceptorConfig {
} else {
interceptors.set(chain, new InterceptorList<>(list));
}
+ chain.addInterceptor(new MPJInterceptor());
} catch (NoSuchFieldException | IllegalAccessException e) {
logger.error("初始化 MPJ 拦截器失败");
e.printStackTrace();
diff --git a/src/main/java/com/github/yulichang/injector/MPJSqlInjector.java b/src/main/java/com/github/yulichang/injector/MPJSqlInjector.java
index 3ae1e0f..e0ac705 100644
--- a/src/main/java/com/github/yulichang/injector/MPJSqlInjector.java
+++ b/src/main/java/com/github/yulichang/injector/MPJSqlInjector.java
@@ -1,23 +1,15 @@
package com.github.yulichang.injector;
+import com.baomidou.mybatisplus.core.MybatisPlusVersion;
import com.baomidou.mybatisplus.core.injector.AbstractMethod;
import com.baomidou.mybatisplus.core.injector.AbstractSqlInjector;
import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector;
import com.baomidou.mybatisplus.core.injector.ISqlInjector;
-import com.baomidou.mybatisplus.core.injector.methods.Delete;
-import com.baomidou.mybatisplus.core.injector.methods.DeleteById;
-import com.baomidou.mybatisplus.core.injector.methods.DeleteByMap;
-import com.baomidou.mybatisplus.core.injector.methods.Insert;
-import com.baomidou.mybatisplus.core.injector.methods.DeleteBatchByIds;
-import com.baomidou.mybatisplus.core.injector.methods.SelectById;
-import com.baomidou.mybatisplus.core.injector.methods.Update;
-import com.baomidou.mybatisplus.core.injector.methods.UpdateById;
-import com.baomidou.mybatisplus.core.injector.methods.SelectBatchByIds;
-import com.baomidou.mybatisplus.core.injector.methods.SelectByMap;
+import com.baomidou.mybatisplus.core.injector.methods.*;
import com.baomidou.mybatisplus.core.mapper.Mapper;
-import com.github.yulichang.mapper.MPJTableMapperHelper;
import com.baomidou.mybatisplus.core.metadata.TableInfo;
import com.baomidou.mybatisplus.core.toolkit.ClassUtils;
+import com.github.yulichang.mapper.MPJTableMapperHelper;
import com.github.yulichang.method.*;
import com.github.yulichang.method.mp.SelectCount;
import com.github.yulichang.method.mp.SelectList;
@@ -89,13 +81,28 @@ public class MPJSqlInjector extends DefaultSqlInjector {
private List getJoinMethod() {
List list = new ArrayList<>();
- list.add(new SelectJoinCount());
- list.add(new SelectJoinOne());
- list.add(new SelectJoinList());
- list.add(new SelectJoinPage());
- list.add(new SelectJoinMap());
- list.add(new SelectJoinMaps());
- list.add(new SelectJoinMapsPage());
+
+ String version = MybatisPlusVersion.getVersion();
+ String[] split = version.split("\\.");
+ int v1 = Integer.parseInt(split[0]);
+ int v2 = Integer.parseInt(split[1]);
+ if ((v1 == 3 && v2 >= 5) || v1 > 3) {
+ list.add(new SelectJoinCount(SqlMethod.SELECT_JOIN_COUNT.getMethod()));
+ list.add(new SelectJoinOne(SqlMethod.SELECT_JOIN_ONE.getMethod()));
+ list.add(new SelectJoinList(SqlMethod.SELECT_JOIN_LIST.getMethod()));
+ list.add(new SelectJoinPage(SqlMethod.SELECT_JOIN_PAGE.getMethod()));
+ list.add(new SelectJoinMap(SqlMethod.SELECT_JOIN_MAP.getMethod()));
+ list.add(new SelectJoinMaps(SqlMethod.SELECT_JOIN_MAPS.getMethod()));
+ list.add(new SelectJoinMapsPage(SqlMethod.SELECT_JOIN_MAPS_PAGE.getMethod()));
+ } else {
+ list.add(new SelectJoinCount());
+ list.add(new SelectJoinOne());
+ list.add(new SelectJoinList());
+ list.add(new SelectJoinPage());
+ list.add(new SelectJoinMap());
+ list.add(new SelectJoinMaps());
+ list.add(new SelectJoinMapsPage());
+ }
return list;
}
diff --git a/src/main/java/com/github/yulichang/method/MPJAbstractMethod.java b/src/main/java/com/github/yulichang/method/MPJAbstractMethod.java
index f6b98e7..9d3ed84 100644
--- a/src/main/java/com/github/yulichang/method/MPJAbstractMethod.java
+++ b/src/main/java/com/github/yulichang/method/MPJAbstractMethod.java
@@ -15,6 +15,18 @@ import java.util.List;
*/
public abstract class MPJAbstractMethod extends AbstractMethod implements MPJBaseMethod {
+
+ @Deprecated
+ @SuppressWarnings("DeprecatedIsStillUsed")
+ public MPJAbstractMethod() {
+ super();
+ }
+
+ @SuppressWarnings({"unused", "deprecation"})
+ protected MPJAbstractMethod(String methodName) {
+ super();
+ }
+
/**
* 连表操作不考虑entity查询和逻辑删除
*/
diff --git a/src/main/java/com/github/yulichang/method/SelectJoinCount.java b/src/main/java/com/github/yulichang/method/SelectJoinCount.java
index f573f1b..94ba80e 100644
--- a/src/main/java/com/github/yulichang/method/SelectJoinCount.java
+++ b/src/main/java/com/github/yulichang/method/SelectJoinCount.java
@@ -12,6 +12,16 @@ import org.apache.ibatis.mapping.SqlSource;
*/
public class SelectJoinCount extends MPJAbstractMethod {
+ @SuppressWarnings("deprecation")
+ public SelectJoinCount() {
+ super();
+ }
+
+ @SuppressWarnings("unused")
+ public SelectJoinCount(String name) {
+ super(name);
+ }
+
@Override
public MappedStatement injectMappedStatement(Class> mapperClass, Class> modelClass, TableInfo tableInfo) {
SqlMethod sqlMethod = SqlMethod.SELECT_JOIN_COUNT;
diff --git a/src/main/java/com/github/yulichang/method/SelectJoinList.java b/src/main/java/com/github/yulichang/method/SelectJoinList.java
index d5acf4b..b5a3e61 100644
--- a/src/main/java/com/github/yulichang/method/SelectJoinList.java
+++ b/src/main/java/com/github/yulichang/method/SelectJoinList.java
@@ -11,6 +11,15 @@ import org.apache.ibatis.mapping.SqlSource;
*/
public class SelectJoinList extends MPJAbstractMethod {
+ public SelectJoinList() {
+ super(SqlMethod.SELECT_JOIN_LIST.getMethod());
+ }
+
+ @SuppressWarnings("unused")
+ public SelectJoinList(String name) {
+ super(name);
+ }
+
@Override
public MappedStatement injectMappedStatement(Class> mapperClass, Class> modelClass, TableInfo tableInfo) {
SqlMethod sqlMethod = SqlMethod.SELECT_JOIN_LIST;
diff --git a/src/main/java/com/github/yulichang/method/SelectJoinMap.java b/src/main/java/com/github/yulichang/method/SelectJoinMap.java
index 21cd4c5..a1af0f8 100644
--- a/src/main/java/com/github/yulichang/method/SelectJoinMap.java
+++ b/src/main/java/com/github/yulichang/method/SelectJoinMap.java
@@ -13,6 +13,15 @@ import java.util.Map;
*/
public class SelectJoinMap extends MPJAbstractMethod {
+ public SelectJoinMap() {
+ super(SqlMethod.SELECT_JOIN_LIST.getMethod());
+ }
+
+ @SuppressWarnings("unused")
+ public SelectJoinMap(String name) {
+ super(name);
+ }
+
@Override
public MappedStatement injectMappedStatement(Class> mapperClass, Class> modelClass, TableInfo tableInfo) {
SqlMethod sqlMethod = SqlMethod.SELECT_JOIN_MAP;
diff --git a/src/main/java/com/github/yulichang/method/SelectJoinMaps.java b/src/main/java/com/github/yulichang/method/SelectJoinMaps.java
index 53ea047..7ce755c 100644
--- a/src/main/java/com/github/yulichang/method/SelectJoinMaps.java
+++ b/src/main/java/com/github/yulichang/method/SelectJoinMaps.java
@@ -13,6 +13,15 @@ import java.util.Map;
*/
public class SelectJoinMaps extends MPJAbstractMethod {
+ public SelectJoinMaps() {
+ super(SqlMethod.SELECT_JOIN_MAPS.getMethod());
+ }
+
+ @SuppressWarnings("unused")
+ public SelectJoinMaps(String name) {
+ super(name);
+ }
+
@Override
public MappedStatement injectMappedStatement(Class> mapperClass, Class> modelClass, TableInfo tableInfo) {
SqlMethod sqlMethod = SqlMethod.SELECT_JOIN_MAPS;
diff --git a/src/main/java/com/github/yulichang/method/SelectJoinMapsPage.java b/src/main/java/com/github/yulichang/method/SelectJoinMapsPage.java
index 5e8fba0..08bcb24 100644
--- a/src/main/java/com/github/yulichang/method/SelectJoinMapsPage.java
+++ b/src/main/java/com/github/yulichang/method/SelectJoinMapsPage.java
@@ -13,6 +13,15 @@ import java.util.Map;
*/
public class SelectJoinMapsPage extends MPJAbstractMethod {
+ public SelectJoinMapsPage() {
+ super(SqlMethod.SELECT_JOIN_MAPS_PAGE.getMethod());
+ }
+
+ @SuppressWarnings("unused")
+ public SelectJoinMapsPage(String name) {
+ super(name);
+ }
+
@Override
public MappedStatement injectMappedStatement(Class> mapperClass, Class> modelClass, TableInfo tableInfo) {
SqlMethod sqlMethod = SqlMethod.SELECT_JOIN_MAPS_PAGE;
diff --git a/src/main/java/com/github/yulichang/method/SelectJoinOne.java b/src/main/java/com/github/yulichang/method/SelectJoinOne.java
index cf9c2ab..16a712b 100644
--- a/src/main/java/com/github/yulichang/method/SelectJoinOne.java
+++ b/src/main/java/com/github/yulichang/method/SelectJoinOne.java
@@ -11,6 +11,15 @@ import org.apache.ibatis.mapping.SqlSource;
*/
public class SelectJoinOne extends MPJAbstractMethod {
+ public SelectJoinOne() {
+ super(SqlMethod.SELECT_JOIN_ONE.getMethod());
+ }
+
+ @SuppressWarnings("unused")
+ public SelectJoinOne(String name) {
+ super(name);
+ }
+
@Override
public MappedStatement injectMappedStatement(Class> mapperClass, Class> modelClass, TableInfo tableInfo) {
SqlMethod sqlMethod = SqlMethod.SELECT_JOIN_ONE;
diff --git a/src/main/java/com/github/yulichang/method/SelectJoinPage.java b/src/main/java/com/github/yulichang/method/SelectJoinPage.java
index 6ac1e02..ac3cdcf 100644
--- a/src/main/java/com/github/yulichang/method/SelectJoinPage.java
+++ b/src/main/java/com/github/yulichang/method/SelectJoinPage.java
@@ -11,6 +11,15 @@ import org.apache.ibatis.mapping.SqlSource;
*/
public class SelectJoinPage extends MPJAbstractMethod {
+ public SelectJoinPage() {
+ super(SqlMethod.SELECT_JOIN_PAGE.getMethod());
+ }
+
+ @SuppressWarnings("unused")
+ public SelectJoinPage(String name) {
+ super(name);
+ }
+
@Override
public MappedStatement injectMappedStatement(Class> mapperClass, Class> modelClass, TableInfo tableInfo) {
SqlMethod sqlMethod = SqlMethod.SELECT_JOIN_PAGE;
diff --git a/src/main/java/com/github/yulichang/method/mp/SelectCount.java b/src/main/java/com/github/yulichang/method/mp/SelectCount.java
index 45f9271..c422f98 100644
--- a/src/main/java/com/github/yulichang/method/mp/SelectCount.java
+++ b/src/main/java/com/github/yulichang/method/mp/SelectCount.java
@@ -11,6 +11,15 @@ import org.apache.ibatis.mapping.MappedStatement;
*/
public class SelectCount extends com.baomidou.mybatisplus.core.injector.methods.SelectCount implements TableAlias {
+ public SelectCount() {
+ super();
+ }
+
+ @SuppressWarnings("unused")
+ public SelectCount(String name) {
+ super(name);
+ }
+
@Override
public MappedStatement injectMappedStatement(Class> mapperClass, Class> modelClass, TableInfo tableInfo) {
return super.injectMappedStatement(mapperClass, modelClass,
diff --git a/src/main/java/com/github/yulichang/method/mp/SelectList.java b/src/main/java/com/github/yulichang/method/mp/SelectList.java
index ce4bb74..a05606a 100644
--- a/src/main/java/com/github/yulichang/method/mp/SelectList.java
+++ b/src/main/java/com/github/yulichang/method/mp/SelectList.java
@@ -12,6 +12,15 @@ import org.apache.ibatis.mapping.MappedStatement;
*/
public class SelectList extends com.baomidou.mybatisplus.core.injector.methods.SelectList implements TableAlias {
+ public SelectList() {
+ super();
+ }
+
+ @SuppressWarnings("unused")
+ public SelectList(String name) {
+ super(name);
+ }
+
@Override
public MappedStatement injectMappedStatement(Class> mapperClass, Class> modelClass, TableInfo tableInfo) {
return super.injectMappedStatement(mapperClass, modelClass,
diff --git a/src/main/java/com/github/yulichang/method/mp/SelectMaps.java b/src/main/java/com/github/yulichang/method/mp/SelectMaps.java
index 68295f4..5f3a964 100644
--- a/src/main/java/com/github/yulichang/method/mp/SelectMaps.java
+++ b/src/main/java/com/github/yulichang/method/mp/SelectMaps.java
@@ -12,6 +12,15 @@ import org.apache.ibatis.mapping.MappedStatement;
*/
public class SelectMaps extends com.baomidou.mybatisplus.core.injector.methods.SelectMaps implements TableAlias {
+ public SelectMaps() {
+ super();
+ }
+
+ @SuppressWarnings("unused")
+ public SelectMaps(String name) {
+ super(name);
+ }
+
@Override
public MappedStatement injectMappedStatement(Class> mapperClass, Class> modelClass, TableInfo tableInfo) {
return super.injectMappedStatement(mapperClass, modelClass,
diff --git a/src/main/java/com/github/yulichang/method/mp/SelectMapsPage.java b/src/main/java/com/github/yulichang/method/mp/SelectMapsPage.java
index ab8bee2..402cc5e 100644
--- a/src/main/java/com/github/yulichang/method/mp/SelectMapsPage.java
+++ b/src/main/java/com/github/yulichang/method/mp/SelectMapsPage.java
@@ -12,6 +12,15 @@ import org.apache.ibatis.mapping.MappedStatement;
*/
public class SelectMapsPage extends com.baomidou.mybatisplus.core.injector.methods.SelectMapsPage implements TableAlias {
+ public SelectMapsPage() {
+ super();
+ }
+
+ @SuppressWarnings("unused")
+ public SelectMapsPage(String name) {
+ super(name);
+ }
+
@Override
public MappedStatement injectMappedStatement(Class> mapperClass, Class> modelClass, TableInfo tableInfo) {
return super.injectMappedStatement(mapperClass, modelClass,
diff --git a/src/main/java/com/github/yulichang/method/mp/SelectObjs.java b/src/main/java/com/github/yulichang/method/mp/SelectObjs.java
index 33c81f3..ce07be6 100644
--- a/src/main/java/com/github/yulichang/method/mp/SelectObjs.java
+++ b/src/main/java/com/github/yulichang/method/mp/SelectObjs.java
@@ -12,6 +12,15 @@ import org.apache.ibatis.mapping.MappedStatement;
*/
public class SelectObjs extends com.baomidou.mybatisplus.core.injector.methods.SelectObjs implements TableAlias {
+ public SelectObjs() {
+ super();
+ }
+
+ @SuppressWarnings("unused")
+ public SelectObjs(String name) {
+ super(name);
+ }
+
@Override
public MappedStatement injectMappedStatement(Class> mapperClass, Class> modelClass, TableInfo tableInfo) {
return super.injectMappedStatement(mapperClass, modelClass,
diff --git a/src/main/java/com/github/yulichang/method/mp/SelectOne.java b/src/main/java/com/github/yulichang/method/mp/SelectOne.java
index 56a8c6c..93cd0a6 100644
--- a/src/main/java/com/github/yulichang/method/mp/SelectOne.java
+++ b/src/main/java/com/github/yulichang/method/mp/SelectOne.java
@@ -17,6 +17,15 @@ import org.apache.ibatis.mapping.MappedStatement;
@SuppressWarnings("deprecation")
public class SelectOne extends com.baomidou.mybatisplus.core.injector.methods.SelectOne implements TableAlias {
+ public SelectOne() {
+ super();
+ }
+
+ @SuppressWarnings("unused")
+ public SelectOne(String name) {
+ super(name);
+ }
+
@Override
public MappedStatement injectMappedStatement(Class> mapperClass, Class> modelClass, TableInfo tableInfo) {
return super.injectMappedStatement(mapperClass, modelClass,
diff --git a/src/main/java/com/github/yulichang/method/mp/SelectPage.java b/src/main/java/com/github/yulichang/method/mp/SelectPage.java
index 425f168..5816266 100644
--- a/src/main/java/com/github/yulichang/method/mp/SelectPage.java
+++ b/src/main/java/com/github/yulichang/method/mp/SelectPage.java
@@ -12,6 +12,15 @@ import org.apache.ibatis.mapping.MappedStatement;
*/
public class SelectPage extends com.baomidou.mybatisplus.core.injector.methods.SelectPage implements TableAlias {
+ public SelectPage() {
+ super();
+ }
+
+ @SuppressWarnings("unused")
+ public SelectPage(String name) {
+ super(name);
+ }
+
@Override
public MappedStatement injectMappedStatement(Class> mapperClass, Class> modelClass, TableInfo tableInfo) {
return super.injectMappedStatement(mapperClass, modelClass,
diff --git a/src/main/java/com/github/yulichang/toolkit/InterceptorList.java b/src/main/java/com/github/yulichang/toolkit/InterceptorList.java
index be052d0..e8620cc 100644
--- a/src/main/java/com/github/yulichang/toolkit/InterceptorList.java
+++ b/src/main/java/com/github/yulichang/toolkit/InterceptorList.java
@@ -36,14 +36,13 @@ public class InterceptorList extends ArrayList {
if (this.isEmpty()) {
return super.add(e);
}
+ boolean add = super.add(e);
Predicate predicate = i -> i instanceof MPJInterceptor;
if (this.stream().anyMatch(predicate)) {
E mpjInterceptor = super.stream().filter(predicate).findFirst().orElse(null);
super.removeIf(predicate);
- boolean a = super.add(e);
- boolean b = super.add(mpjInterceptor);
- return a && b;
+ return super.add(mpjInterceptor);
}
- return super.add(e);
+ return add;
}
}