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; } }