From 7eb5605fffaebbd5b18230c4a905196132062400 Mon Sep 17 00:00:00 2001 From: yulichang <570810310@qq.com> Date: Wed, 10 Apr 2024 09:38:18 +0800 Subject: [PATCH] =?UTF-8?q?mp=20->=203.5.6=20&=20=E9=80=82=E9=85=8Djsqlpar?= =?UTF-8?q?ser?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pom.xml | 55 +++++++++++++++++ .../jsqlparser/v46/JSqlParserHelperV46.java | 59 +++++++++++++++++++ .../pom.xml | 56 ++++++++++++++++++ .../adapter/jsqlparser/JSqlParserHelper.java | 54 +++++++++++++++++ .../mybatis-plus-join-adapter-base/pom.xml | 11 +++- .../{ITableInfoAdapter.java => IAdapter.java} | 5 +- ...eInfoAdapterV33x.java => AdapterV33x.java} | 13 +++- ...eInfoAdapter3431.java => Adapter3431.java} | 13 +++- .../mybatis-plus-join-adapter-v355/pom.xml | 59 +++++++++++++++++++ .../yulichang/adapter/v355/Adapter355.java | 18 ++++++ mybatis-plus-join-adapter/pom.xml | 10 ++++ mybatis-plus-join-core/pom.xml | 5 ++ .../com/github/yulichang/adapter/Adapter.java | 18 ++++++ .../yulichang/adapter/AdapterHelper.java | 27 +++++---- .../yulichang/adapter/TableInfoAdapter.java | 11 ---- .../yulichang/config/ConfigProperties.java | 4 +- .../yulichang/interceptor/MPJInterceptor.java | 11 ++-- .../yulichang/kt/KtDeleteJoinWrapper.java | 8 +-- .../yulichang/kt/KtUpdateJoinWrapper.java | 4 +- .../github/yulichang/kt/interfaces/Query.java | 5 +- .../github/yulichang/method/DeleteJoin.java | 2 +- .../yulichang/method/MPJBaseMethod.java | 4 +- .../github/yulichang/method/UpdateJoin.java | 2 +- .../yulichang/toolkit/JSqlParserHelper.java | 55 ----------------- .../yulichang/toolkit/KtWrapperUtils.java | 2 +- .../yulichang/toolkit/WrapperUtils.java | 2 +- .../yulichang/wrapper/DeleteJoinWrapper.java | 8 +-- .../yulichang/wrapper/UpdateJoinWrapper.java | 4 +- .../yulichang/wrapper/interfaces/Query.java | 5 +- .../mapping/mapper/MPJTableFieldInfo.java | 6 +- mybatis-plus-join-test/pom.xml | 4 +- .../test-springboot3-jdk17/pom.xml | 2 +- pom.xml | 2 +- 33 files changed, 422 insertions(+), 122 deletions(-) create mode 100644 mybatis-plus-join-adapter/jsqlparser/mybatis-plus-join-adapter-jsqlparser-v46/pom.xml create mode 100644 mybatis-plus-join-adapter/jsqlparser/mybatis-plus-join-adapter-jsqlparser-v46/src/main/java/com/github/yulichang/adapter/jsqlparser/v46/JSqlParserHelperV46.java create mode 100644 mybatis-plus-join-adapter/jsqlparser/mybatis-plus-join-adapter-jsqlparser/pom.xml create mode 100644 mybatis-plus-join-adapter/jsqlparser/mybatis-plus-join-adapter-jsqlparser/src/main/java/com/github/yulichang/adapter/jsqlparser/JSqlParserHelper.java rename mybatis-plus-join-adapter/mybatis-plus-join-adapter-base/src/main/java/com/github/yulichang/adapter/base/{ITableInfoAdapter.java => IAdapter.java} (89%) rename mybatis-plus-join-adapter/mybatis-plus-join-adapter-v33x/src/main/java/com/github/yulichang/adapter/v33x/{TableInfoAdapterV33x.java => AdapterV33x.java} (79%) rename mybatis-plus-join-adapter/mybatis-plus-join-adapter-v3431/src/main/java/com/github/yulichang/adapter/v3431/{TableInfoAdapter3431.java => Adapter3431.java} (62%) create mode 100644 mybatis-plus-join-adapter/mybatis-plus-join-adapter-v355/pom.xml create mode 100644 mybatis-plus-join-adapter/mybatis-plus-join-adapter-v355/src/main/java/com/github/yulichang/adapter/v355/Adapter355.java create mode 100644 mybatis-plus-join-core/src/main/java/com/github/yulichang/adapter/Adapter.java delete mode 100644 mybatis-plus-join-core/src/main/java/com/github/yulichang/adapter/TableInfoAdapter.java delete mode 100644 mybatis-plus-join-core/src/main/java/com/github/yulichang/toolkit/JSqlParserHelper.java diff --git a/mybatis-plus-join-adapter/jsqlparser/mybatis-plus-join-adapter-jsqlparser-v46/pom.xml b/mybatis-plus-join-adapter/jsqlparser/mybatis-plus-join-adapter-jsqlparser-v46/pom.xml new file mode 100644 index 0000000..a2797c8 --- /dev/null +++ b/mybatis-plus-join-adapter/jsqlparser/mybatis-plus-join-adapter-jsqlparser-v46/pom.xml @@ -0,0 +1,55 @@ + + + 4.0.0 + + com.github.yulichang + mybatis-plus-join-adapter + ${revision} + ../../pom.xml + + + mybatis-plus-join-adapter-jsqlparser-v46 + ${revision} + mybatis-plus-join-adapter-jsqlparser-v46 + + An enhanced toolkit of Mybatis-Plus to simplify development. + https://github.com/yulichang/mybatis-plus-join + + + The Apache License, Version 2.0 + https://www.apache.org/licenses/LICENSE-2.0.txt + + + + + mybatis-plus-join + yulichang + yu_lichang@qq.com + + + + scm:git:https://github.com/yulichang/mybatis-plus-join.git + scm:git:https://github.com/yulichang/mybatis-plus-join.git + https://github.com/yulichang/mybatis-plus-join + + + + 1.8 + 1.8 + 1.8 + 1.8 + github + UTF-8 + + + + + com.baomidou + mybatis-plus-core + 3.5.5 + provided + + + \ No newline at end of file diff --git a/mybatis-plus-join-adapter/jsqlparser/mybatis-plus-join-adapter-jsqlparser-v46/src/main/java/com/github/yulichang/adapter/jsqlparser/v46/JSqlParserHelperV46.java b/mybatis-plus-join-adapter/jsqlparser/mybatis-plus-join-adapter-jsqlparser-v46/src/main/java/com/github/yulichang/adapter/jsqlparser/v46/JSqlParserHelperV46.java new file mode 100644 index 0000000..a3e44c2 --- /dev/null +++ b/mybatis-plus-join-adapter/jsqlparser/mybatis-plus-join-adapter-jsqlparser-v46/src/main/java/com/github/yulichang/adapter/jsqlparser/v46/JSqlParserHelperV46.java @@ -0,0 +1,59 @@ +package com.github.yulichang.adapter.jsqlparser.v46; + +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.baomidou.mybatisplus.core.toolkit.ExceptionUtils; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import net.sf.jsqlparser.parser.CCJSqlParserUtil; +import net.sf.jsqlparser.schema.Column; +import net.sf.jsqlparser.statement.Statement; +import net.sf.jsqlparser.statement.select.*; + +import java.util.function.Consumer; + +/** + * 字段解析 + * + * @author yulichang + * @since 1.4.12 + */ +public class JSqlParserHelperV46 { + + public static void parserColum(String alias, String from, String selectSql, Consumer columConsumer) { + try { + boolean parser = false; + Statement statement = CCJSqlParserUtil.parse(String.format("SELECT %s FROM table %s %s", selectSql, alias, from)); + if (statement instanceof Select) { + Select select = (Select) statement; + SelectBody selectBody = select.getSelectBody(); + if (selectBody instanceof PlainSelect) { + PlainSelect plainSelect = (PlainSelect) selectBody; + if (CollectionUtils.isNotEmpty(plainSelect.getSelectItems())) { + for (SelectItem item : plainSelect.getSelectItems()) { + if (item instanceof SelectExpressionItem) { + String col; + SelectExpressionItem selectExpressionItem = (SelectExpressionItem) item; + if (null == selectExpressionItem.getAlias()) { + if (selectExpressionItem.getExpression() instanceof Column) { + col = ((Column) selectExpressionItem.getExpression()).getColumnName(); + } else { + col = selectExpressionItem.getExpression().toString(); + } + } else { + col = selectExpressionItem.getAlias().getName(); + } + if (StringUtils.isNotBlank(col)) { + columConsumer.accept(StringUtils.getTargetColumn(col)); + } + } + } + parser = true; + } + } + if (!parser) + throw ExceptionUtils.mpe("JSqlParser parser error <%s>", selectSql); + } + } catch (Throwable throwable) { + throw new RuntimeException(throwable); + } + } +} diff --git a/mybatis-plus-join-adapter/jsqlparser/mybatis-plus-join-adapter-jsqlparser/pom.xml b/mybatis-plus-join-adapter/jsqlparser/mybatis-plus-join-adapter-jsqlparser/pom.xml new file mode 100644 index 0000000..94ab7fc --- /dev/null +++ b/mybatis-plus-join-adapter/jsqlparser/mybatis-plus-join-adapter-jsqlparser/pom.xml @@ -0,0 +1,56 @@ + + + 4.0.0 + + com.github.yulichang + mybatis-plus-join-adapter + ${revision} + ../../pom.xml + + + mybatis-plus-join-adapter-jsqlparser + ${revision} + mybatis-plus-join-adapter-jsqlparser + + An enhanced toolkit of Mybatis-Plus to simplify development. + https://github.com/yulichang/mybatis-plus-join + + + The Apache License, Version 2.0 + https://www.apache.org/licenses/LICENSE-2.0.txt + + + + + mybatis-plus-join + yulichang + yu_lichang@qq.com + + + + scm:git:https://github.com/yulichang/mybatis-plus-join.git + scm:git:https://github.com/yulichang/mybatis-plus-join.git + https://github.com/yulichang/mybatis-plus-join + + + + 1.8 + 1.8 + 1.8 + 1.8 + github + UTF-8 + + + + + com.baomidou + mybatis-plus-core + ${mpj.mybatis.plus.version} + provided + + + + \ No newline at end of file diff --git a/mybatis-plus-join-adapter/jsqlparser/mybatis-plus-join-adapter-jsqlparser/src/main/java/com/github/yulichang/adapter/jsqlparser/JSqlParserHelper.java b/mybatis-plus-join-adapter/jsqlparser/mybatis-plus-join-adapter-jsqlparser/src/main/java/com/github/yulichang/adapter/jsqlparser/JSqlParserHelper.java new file mode 100644 index 0000000..87de75d --- /dev/null +++ b/mybatis-plus-join-adapter/jsqlparser/mybatis-plus-join-adapter-jsqlparser/src/main/java/com/github/yulichang/adapter/jsqlparser/JSqlParserHelper.java @@ -0,0 +1,54 @@ +package com.github.yulichang.adapter.jsqlparser; + +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.baomidou.mybatisplus.core.toolkit.ExceptionUtils; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import net.sf.jsqlparser.parser.CCJSqlParserUtil; +import net.sf.jsqlparser.schema.Column; +import net.sf.jsqlparser.statement.Statement; +import net.sf.jsqlparser.statement.select.PlainSelect; +import net.sf.jsqlparser.statement.select.SelectItem; + +import java.util.function.Consumer; + +/** + * 字段解析 + * + * @author yulichang + * @since 1.4.12 + */ +public class JSqlParserHelper { + + public static void parserColum(String alias, String from, String selectSql, Consumer columConsumer) { + try { + boolean parser = false; + Statement statement = CCJSqlParserUtil.parse(String.format("SELECT %s FROM table %s %s", selectSql, alias, from)); + if (statement instanceof PlainSelect) { + PlainSelect plainSelect = (PlainSelect) statement; + if (CollectionUtils.isNotEmpty(plainSelect.getSelectItems())) { + for (SelectItem item : plainSelect.getSelectItems()) { + String col; + if (item.getAlias() == null) { + if (item.getExpression() instanceof Column) { + Column column = (Column) item.getExpression(); + col = column.getColumnName(); + } else { + col = item.getExpression().toString(); + } + } else { + col = item.getAlias().getName(); + } + if (StringUtils.isNotBlank(col)) { + columConsumer.accept(StringUtils.getTargetColumn(col)); + } + } + parser = true; + } + } + if (!parser) + throw ExceptionUtils.mpe("JSqlParser parser error <%s>", selectSql); + } catch (Throwable throwable) { + throw new RuntimeException(throwable); + } + } +} diff --git a/mybatis-plus-join-adapter/mybatis-plus-join-adapter-base/pom.xml b/mybatis-plus-join-adapter/mybatis-plus-join-adapter-base/pom.xml index f1f69ec..3cf2ef9 100644 --- a/mybatis-plus-join-adapter/mybatis-plus-join-adapter-base/pom.xml +++ b/mybatis-plus-join-adapter/mybatis-plus-join-adapter-base/pom.xml @@ -41,9 +41,14 @@ provided - org.projectlombok - lombok - provided + com.github.yulichang + mybatis-plus-join-adapter-jsqlparser + ${revision} + + + com.github.yulichang + mybatis-plus-join-adapter-jsqlparser-v46 + ${revision} diff --git a/mybatis-plus-join-adapter/mybatis-plus-join-adapter-base/src/main/java/com/github/yulichang/adapter/base/ITableInfoAdapter.java b/mybatis-plus-join-adapter/mybatis-plus-join-adapter-base/src/main/java/com/github/yulichang/adapter/base/IAdapter.java similarity index 89% rename from mybatis-plus-join-adapter/mybatis-plus-join-adapter-base/src/main/java/com/github/yulichang/adapter/base/ITableInfoAdapter.java rename to mybatis-plus-join-adapter/mybatis-plus-join-adapter-base/src/main/java/com/github/yulichang/adapter/base/IAdapter.java index 6a8e90d..1cee471 100644 --- a/mybatis-plus-join-adapter/mybatis-plus-join-adapter-base/src/main/java/com/github/yulichang/adapter/base/ITableInfoAdapter.java +++ b/mybatis-plus-join-adapter/mybatis-plus-join-adapter-base/src/main/java/com/github/yulichang/adapter/base/IAdapter.java @@ -7,6 +7,7 @@ import org.apache.ibatis.session.Configuration; import java.lang.reflect.Field; import java.util.List; +import java.util.function.Consumer; import java.util.function.Supplier; import java.util.stream.Collectors; @@ -14,7 +15,7 @@ import java.util.stream.Collectors; * @author yulichang * @since 1.4.3 */ -public interface ITableInfoAdapter { +public interface IAdapter { default boolean mpjHasLogic(TableInfo tableInfo) { return tableInfo.isWithLogicDelete(); @@ -44,4 +45,6 @@ public interface ITableInfoAdapter { return tableInfo.getOrderByFields().stream().map(f -> new OrderFieldInfo(f.getColumn(), f.getType(), f.getSort())).collect(Collectors.toList()); } + + void parserColum(String alias, String from, String selectSql, Consumer columConsumer); } diff --git a/mybatis-plus-join-adapter/mybatis-plus-join-adapter-v33x/src/main/java/com/github/yulichang/adapter/v33x/TableInfoAdapterV33x.java b/mybatis-plus-join-adapter/mybatis-plus-join-adapter-v33x/src/main/java/com/github/yulichang/adapter/v33x/AdapterV33x.java similarity index 79% rename from mybatis-plus-join-adapter/mybatis-plus-join-adapter-v33x/src/main/java/com/github/yulichang/adapter/v33x/TableInfoAdapterV33x.java rename to mybatis-plus-join-adapter/mybatis-plus-join-adapter-v33x/src/main/java/com/github/yulichang/adapter/v33x/AdapterV33x.java index 9aefe80..d7ff421 100644 --- a/mybatis-plus-join-adapter/mybatis-plus-join-adapter-v33x/src/main/java/com/github/yulichang/adapter/v33x/TableInfoAdapterV33x.java +++ b/mybatis-plus-join-adapter/mybatis-plus-join-adapter-v33x/src/main/java/com/github/yulichang/adapter/v33x/AdapterV33x.java @@ -4,21 +4,23 @@ import com.baomidou.mybatisplus.core.MybatisPlusVersion; import com.baomidou.mybatisplus.core.metadata.TableFieldInfo; import com.baomidou.mybatisplus.core.metadata.TableInfo; import com.baomidou.mybatisplus.core.toolkit.StringUtils; -import com.github.yulichang.adapter.base.ITableInfoAdapter; +import com.github.yulichang.adapter.base.IAdapter; import com.github.yulichang.adapter.base.metadata.OrderFieldInfo; import com.github.yulichang.adapter.base.tookit.VersionUtils; +import com.github.yulichang.adapter.jsqlparser.v46.JSqlParserHelperV46; import org.apache.ibatis.session.Configuration; import java.lang.reflect.Field; import java.util.List; import java.util.Objects; +import java.util.function.Consumer; import java.util.function.Supplier; /** * @author yulichang * @since 1.4.3 */ -public class TableInfoAdapterV33x implements ITableInfoAdapter { +public class AdapterV33x implements IAdapter { private static final boolean is330 = VersionUtils.compare(MybatisPlusVersion.getVersion(), "3.3.0") == 0; @@ -51,11 +53,16 @@ public class TableInfoAdapterV33x implements ITableInfoAdapter { @Override public Field mpjGetField(TableFieldInfo fieldInfo, Supplier supplier) { - return is330 ? supplier.get() : ITableInfoAdapter.super.mpjGetField(fieldInfo, null); + return is330 ? supplier.get() : IAdapter.super.mpjGetField(fieldInfo, null); } @Override public List mpjGetOrderField(TableInfo tableInfo) { throw new UnsupportedOperationException("不支持排序"); } + + @Override + public void parserColum(String alias, String from, String selectSql, Consumer columConsumer) { + JSqlParserHelperV46.parserColum(alias, from, selectSql, columConsumer); + } } diff --git a/mybatis-plus-join-adapter/mybatis-plus-join-adapter-v3431/src/main/java/com/github/yulichang/adapter/v3431/TableInfoAdapter3431.java b/mybatis-plus-join-adapter/mybatis-plus-join-adapter-v3431/src/main/java/com/github/yulichang/adapter/v3431/Adapter3431.java similarity index 62% rename from mybatis-plus-join-adapter/mybatis-plus-join-adapter-v3431/src/main/java/com/github/yulichang/adapter/v3431/TableInfoAdapter3431.java rename to mybatis-plus-join-adapter/mybatis-plus-join-adapter-v3431/src/main/java/com/github/yulichang/adapter/v3431/Adapter3431.java index eaf1081..91968a3 100644 --- a/mybatis-plus-join-adapter/mybatis-plus-join-adapter-v3431/src/main/java/com/github/yulichang/adapter/v3431/TableInfoAdapter3431.java +++ b/mybatis-plus-join-adapter/mybatis-plus-join-adapter-v3431/src/main/java/com/github/yulichang/adapter/v3431/Adapter3431.java @@ -2,18 +2,22 @@ package com.github.yulichang.adapter.v3431; import com.baomidou.mybatisplus.core.MybatisPlusVersion; import com.baomidou.mybatisplus.core.metadata.TableInfo; -import com.github.yulichang.adapter.base.ITableInfoAdapter; +import com.github.yulichang.adapter.base.IAdapter; import com.github.yulichang.adapter.base.metadata.OrderFieldInfo; import com.github.yulichang.adapter.base.tookit.VersionUtils; +import com.github.yulichang.adapter.jsqlparser.v46.JSqlParserHelperV46; +import lombok.AllArgsConstructor; import java.util.List; +import java.util.function.Consumer; import java.util.stream.Collectors; /** * @author yulichang * @since 1.4.7 */ -public class TableInfoAdapter3431 implements ITableInfoAdapter { +@AllArgsConstructor +public class Adapter3431 implements IAdapter { private static final boolean v = VersionUtils.compare(MybatisPlusVersion.getVersion(), "3.4.3") < 0; @@ -22,4 +26,9 @@ public class TableInfoAdapter3431 implements ITableInfoAdapter { return v ? null : tableInfo.getOrderByFields().stream().map(f -> new OrderFieldInfo(f.getColumn(), f.getOrderByType(), f.getOrderBySort())).collect(Collectors.toList()); } + + @Override + public void parserColum(String alias, String from, String selectSql, Consumer columConsumer) { + JSqlParserHelperV46.parserColum(alias, from, selectSql, columConsumer); + } } diff --git a/mybatis-plus-join-adapter/mybatis-plus-join-adapter-v355/pom.xml b/mybatis-plus-join-adapter/mybatis-plus-join-adapter-v355/pom.xml new file mode 100644 index 0000000..955a389 --- /dev/null +++ b/mybatis-plus-join-adapter/mybatis-plus-join-adapter-v355/pom.xml @@ -0,0 +1,59 @@ + + + 4.0.0 + + com.github.yulichang + mybatis-plus-join-adapter + ${revision} + + mybatis-plus-join-adapter-v355 + ${revision} + mybatis-plus-join-adapter-v355 + + An enhanced toolkit of Mybatis-Plus to simplify development. + https://github.com/yulichang/mybatis-plus-join + + + The Apache License, Version 2.0 + https://www.apache.org/licenses/LICENSE-2.0.txt + + + + + mybatis-plus-join + yulichang + yu_lichang@qq.com + + + + scm:git:https://github.com/yulichang/mybatis-plus-join.git + scm:git:https://github.com/yulichang/mybatis-plus-join.git + https://github.com/yulichang/mybatis-plus-join + + + + 1.8 + 1.8 + 1.8 + 1.8 + github + UTF-8 + + + + + com.github.yulichang + mybatis-plus-join-adapter-base + ${revision} + + + com.baomidou + mybatis-plus-core + 3.5.5 + provided + + + + \ No newline at end of file diff --git a/mybatis-plus-join-adapter/mybatis-plus-join-adapter-v355/src/main/java/com/github/yulichang/adapter/v355/Adapter355.java b/mybatis-plus-join-adapter/mybatis-plus-join-adapter-v355/src/main/java/com/github/yulichang/adapter/v355/Adapter355.java new file mode 100644 index 0000000..04704a0 --- /dev/null +++ b/mybatis-plus-join-adapter/mybatis-plus-join-adapter-v355/src/main/java/com/github/yulichang/adapter/v355/Adapter355.java @@ -0,0 +1,18 @@ +package com.github.yulichang.adapter.v355; + +import com.github.yulichang.adapter.base.IAdapter; +import com.github.yulichang.adapter.jsqlparser.v46.JSqlParserHelperV46; + +import java.util.function.Consumer; + +/** + * @author yulichang + * @since 1.4.12 + */ +public class Adapter355 implements IAdapter { + + @Override + public void parserColum(String alias, String from, String selectSql, Consumer columConsumer) { + JSqlParserHelperV46.parserColum(alias, from, selectSql, columConsumer); + } +} \ No newline at end of file diff --git a/mybatis-plus-join-adapter/pom.xml b/mybatis-plus-join-adapter/pom.xml index d0df29f..32e3645 100644 --- a/mybatis-plus-join-adapter/pom.xml +++ b/mybatis-plus-join-adapter/pom.xml @@ -17,6 +17,9 @@ mybatis-plus-join-adapter-v33x mybatis-plus-join-adapter-v3431 mybatis-plus-join-adapter-v352 + mybatis-plus-join-adapter-v355 + jsqlparser/mybatis-plus-join-adapter-jsqlparser + jsqlparser/mybatis-plus-join-adapter-jsqlparser-v46 An enhanced toolkit of Mybatis-Plus to simplify development. @@ -40,4 +43,11 @@ https://github.com/yulichang/mybatis-plus-join + + + org.projectlombok + lombok + provided + + diff --git a/mybatis-plus-join-core/pom.xml b/mybatis-plus-join-core/pom.xml index 6a67863..2d31e0c 100644 --- a/mybatis-plus-join-core/pom.xml +++ b/mybatis-plus-join-core/pom.xml @@ -54,6 +54,11 @@ mybatis-plus-join-adapter-v352 ${revision} + + com.github.yulichang + mybatis-plus-join-adapter-v355 + ${revision} + com.baomidou mybatis-plus-extension diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/adapter/Adapter.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/adapter/Adapter.java new file mode 100644 index 0000000..0d685d6 --- /dev/null +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/adapter/Adapter.java @@ -0,0 +1,18 @@ +package com.github.yulichang.adapter; + +import com.github.yulichang.adapter.base.IAdapter; +import com.github.yulichang.adapter.jsqlparser.JSqlParserHelper; + +import java.util.function.Consumer; + +/** + * @author yulichang + * @since 1.4.3 + */ +public class Adapter implements IAdapter { + + @Override + public void parserColum(String alias, String from, String selectSql, Consumer columConsumer) { + JSqlParserHelper.parserColum(alias, from, selectSql, columConsumer); + } +} diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/adapter/AdapterHelper.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/adapter/AdapterHelper.java index 3b91ccf..d17b3f4 100644 --- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/adapter/AdapterHelper.java +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/adapter/AdapterHelper.java @@ -2,10 +2,12 @@ package com.github.yulichang.adapter; import com.baomidou.mybatisplus.core.MybatisPlusVersion; import com.baomidou.mybatisplus.core.toolkit.ExceptionUtils; -import com.github.yulichang.adapter.base.ITableInfoAdapter; +import com.github.yulichang.adapter.base.IAdapter; import com.github.yulichang.adapter.base.tookit.VersionUtils; -import com.github.yulichang.adapter.v33x.TableInfoAdapterV33x; -import com.github.yulichang.adapter.v3431.TableInfoAdapter3431; +import com.github.yulichang.adapter.v33x.AdapterV33x; +import com.github.yulichang.adapter.v3431.Adapter3431; +import com.github.yulichang.adapter.v355.Adapter355; +import lombok.Getter; /** * @author yulichang @@ -13,22 +15,23 @@ import com.github.yulichang.adapter.v3431.TableInfoAdapter3431; */ public class AdapterHelper { - private static final ITableInfoAdapter adapter; + @Getter + private static final IAdapter adapter; + static { String version = MybatisPlusVersion.getVersion(); - if (VersionUtils.compare(version, "3.5.4") >= 0) { - adapter = new TableInfoAdapter(); + + if (VersionUtils.compare(version, "3.5.6") >= 0) { + adapter = new Adapter(); + } else if (VersionUtils.compare(version, "3.5.4") >= 0) { + adapter = new Adapter355(); } else if (VersionUtils.compare(version, "3.4.0") >= 0) { - adapter = new TableInfoAdapter3431(); + adapter = new Adapter3431(); } else if (VersionUtils.compare(version, "3.3.0") >= 0) { - adapter = new TableInfoAdapterV33x(); + adapter = new AdapterV33x(); } else { throw ExceptionUtils.mpe("MPJ需要MP版本3.3.0+,当前MP版本%s", version); } } - - public static ITableInfoAdapter getTableInfoAdapter() { - return adapter; - } } diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/adapter/TableInfoAdapter.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/adapter/TableInfoAdapter.java deleted file mode 100644 index 145a51c..0000000 --- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/adapter/TableInfoAdapter.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.github.yulichang.adapter; - -import com.github.yulichang.adapter.base.ITableInfoAdapter; - -/** - * @author yulichang - * @since 1.4.3 - */ -public class TableInfoAdapter implements ITableInfoAdapter { - -} diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/config/ConfigProperties.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/config/ConfigProperties.java index 3aa43a6..0d559f4 100644 --- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/config/ConfigProperties.java +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/config/ConfigProperties.java @@ -1,7 +1,7 @@ package com.github.yulichang.config; import com.github.yulichang.adapter.AdapterHelper; -import com.github.yulichang.adapter.base.ITableInfoAdapter; +import com.github.yulichang.adapter.base.IAdapter; import com.github.yulichang.config.enums.IfExistsEnum; import com.github.yulichang.config.enums.LogicDelTypeEnum; import com.github.yulichang.wrapper.enums.IfExistsSqlKeyWordEnum; @@ -45,7 +45,7 @@ public class ConfigProperties { /** * TableInfo适配器 */ - public static ITableInfoAdapter tableInfoAdapter = AdapterHelper.getTableInfoAdapter(); + public static IAdapter tableInfoAdapter = AdapterHelper.getAdapter(); /** * 子查询别名 */ diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/interceptor/MPJInterceptor.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/interceptor/MPJInterceptor.java index 9f20dfe..3fa755c 100644 --- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/interceptor/MPJInterceptor.java +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/interceptor/MPJInterceptor.java @@ -2,13 +2,16 @@ package com.github.yulichang.interceptor; import com.baomidou.mybatisplus.core.MybatisPlusVersion; import com.baomidou.mybatisplus.core.metadata.TableInfo; -import com.baomidou.mybatisplus.core.toolkit.ReflectionKit; import com.baomidou.mybatisplus.core.toolkit.*; +import com.github.yulichang.adapter.AdapterHelper; import com.github.yulichang.adapter.base.tookit.VersionUtils; import com.github.yulichang.config.ConfigProperties; import com.github.yulichang.interfaces.MPJBaseJoin; import com.github.yulichang.query.MPJQueryWrapper; -import com.github.yulichang.toolkit.*; +import com.github.yulichang.toolkit.Constant; +import com.github.yulichang.toolkit.MPJReflectionKit; +import com.github.yulichang.toolkit.MPJTableMapperHelper; +import com.github.yulichang.toolkit.TableHelper; import com.github.yulichang.toolkit.support.FieldCache; import com.github.yulichang.wrapper.interfaces.SelectWrapper; import com.github.yulichang.wrapper.resultmap.IResult; @@ -205,7 +208,7 @@ public class MPJInterceptor implements Interceptor { resultMappings.add(selectToResult(wrapper.getEntityClass(), i, field.getType(), builder)); } } else if (wrapper.isResultMap()) { - ThrowOptional.tryDo(() -> JSqlParserHelper.paresColum(wrapper, i.getColumn(), col -> { + AdapterHelper.getAdapter().parserColum(wrapper.getAlias(), wrapper.getFrom(), i.getColumn(), col -> { FieldCache strField = fieldMap.get(col); columnSet.add(col); if (Objects.nonNull(strField)) { @@ -213,7 +216,7 @@ public class MPJInterceptor implements Interceptor { col, strField.getType()); resultMappings.add(selectToResult(wrapper.getEntityClass(), i, strField.getType(), builder)); } - })).catchDo(); + }); } } } diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/kt/KtDeleteJoinWrapper.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/kt/KtDeleteJoinWrapper.java index 8721079..960e073 100644 --- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/kt/KtDeleteJoinWrapper.java +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/kt/KtDeleteJoinWrapper.java @@ -168,17 +168,17 @@ public class KtDeleteJoinWrapper extends KtAbstractLambdaWrapper entityClass = getEntityClass(); TableInfo tableInfo = TableHelper.getAssert(entityClass); //检查 - boolean mainLogic = AdapterHelper.getTableInfoAdapter().mpjHasLogic(tableInfo); + boolean mainLogic = AdapterHelper.getAdapter().mpjHasLogic(tableInfo); boolean check = classList.stream().allMatch(t -> { TableInfo ti = TableHelper.getAssert(t); - return mainLogic == AdapterHelper.getTableInfoAdapter().mpjHasLogic(ti); + return mainLogic == AdapterHelper.getAdapter().mpjHasLogic(ti); }); if (!check) { throw ExceptionUtils.mpe("连表删除只适用于全部表(主表和副表)都是物理删除或全部都是逻辑删除, " + "不支持同时存在物理删除和逻辑删除 [物理删除->(%s)] [逻辑删除->(%s)]", - classList.stream().filter(t -> !AdapterHelper.getTableInfoAdapter().mpjHasLogic(TableHelper.getAssert(t))) + classList.stream().filter(t -> !AdapterHelper.getAdapter().mpjHasLogic(TableHelper.getAssert(t))) .map(Class::getSimpleName).collect(Collectors.joining(StringPool.COMMA)), - classList.stream().filter(t -> AdapterHelper.getTableInfoAdapter().mpjHasLogic(TableHelper.getAssert(t))) + classList.stream().filter(t -> AdapterHelper.getAdapter().mpjHasLogic(TableHelper.getAssert(t))) .map(Class::getSimpleName).collect(Collectors.joining(StringPool.COMMA))); } } diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/kt/KtUpdateJoinWrapper.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/kt/KtUpdateJoinWrapper.java index d6ac0cf..945d8ae 100644 --- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/kt/KtUpdateJoinWrapper.java +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/kt/KtUpdateJoinWrapper.java @@ -201,12 +201,12 @@ public class KtUpdateJoinWrapper extends KtAbstractLambdaWrapper", obj.getClass().getSimpleName()); TableInfo tableInfo = TableHelper.getAssert(obj.getClass()); for (TableFieldInfo fieldInfo : tableInfo.getFieldList()) { - if (AdapterHelper.getTableInfoAdapter().mpjHasLogic(tableInfo) && fieldInfo.isLogicDelete()) { + if (AdapterHelper.getAdapter().mpjHasLogic(tableInfo) && fieldInfo.isLogicDelete()) { continue; } Object val; try { - Field field = AdapterHelper.getTableInfoAdapter().mpjGetField(fieldInfo, () -> { + Field field = AdapterHelper.getAdapter().mpjGetField(fieldInfo, () -> { Field field1 = ReflectionKit.getFieldMap(obj.getClass()).get(fieldInfo.getProperty()); field1.setAccessible(true); return field1; diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/kt/interfaces/Query.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/kt/interfaces/Query.java index 7cd6bef..43d923f 100644 --- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/kt/interfaces/Query.java +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/kt/interfaces/Query.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.TableFieldInfo; import com.baomidou.mybatisplus.core.metadata.TableInfo; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.github.yulichang.kt.segments.FuncArgs; +import com.github.yulichang.toolkit.Constant; import com.github.yulichang.toolkit.KtUtils; import com.github.yulichang.toolkit.MPJReflectionKit; import com.github.yulichang.toolkit.TableHelper; @@ -98,7 +99,7 @@ public interface Query extends Serializable { * @param column 列 */ default Children selectAs(String column, KProperty alias) { - getSelectColum().add(new SelectString(column + Constants.AS + alias.getName(), alias.getName())); + getSelectColum().add(new SelectString(column + Constant.AS + alias.getName(), alias.getName())); return getChildren(); } @@ -111,7 +112,7 @@ public interface Query extends Serializable { Map cacheMap = ColumnCache.getMapField(KtUtils.ref(column)); SelectCache cache = cacheMap.get(column.getName()); getSelectColum().add(new SelectString( - index + Constants.DOT + cache.getColumn() + Constants.AS + alias.getName(), alias.getName())); + index + Constants.DOT + cache.getColumn() + Constant.AS + alias.getName(), alias.getName())); return getChildren(); } diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/method/DeleteJoin.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/method/DeleteJoin.java index 332fcb9..6396245 100644 --- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/method/DeleteJoin.java +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/method/DeleteJoin.java @@ -28,7 +28,7 @@ public class DeleteJoin extends MPJAbstractMethod { @SuppressWarnings("DuplicatedCode") public MappedStatement injectMappedStatement(Class mapperClass, Class modelClass, TableInfo tableInfo) { SqlMethod sqlMethod = SqlMethod.LOGIC_DELETE_JOIN; - if (AdapterHelper.getTableInfoAdapter().mpjHasLogic(tableInfo)) { + if (AdapterHelper.getAdapter().mpjHasLogic(tableInfo)) { String sql = String.format(sqlMethod.getSql(), sqlFirst(), mpjTableName(tableInfo), sqlAlias(), sqlFrom(), mpjDeleteLogic(tableInfo), sqlWhereEntityWrapper(true, tableInfo), sqlComment()); SqlSource sqlSource = languageDriver.createSqlSource(configuration, removeExtraWhitespaces(sql), modelClass); diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/method/MPJBaseMethod.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/method/MPJBaseMethod.java index 8967940..8742ad9 100644 --- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/method/MPJBaseMethod.java +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/method/MPJBaseMethod.java @@ -73,7 +73,7 @@ public interface MPJBaseMethod extends Constants { /* 不存在排序字段,直接返回空 */ List orderByFields; try { - orderByFields = AdapterHelper.getTableInfoAdapter().mpjGetOrderField(tableInfo); + orderByFields = AdapterHelper.getAdapter().mpjGetOrderField(tableInfo); } catch (Exception e) { return StringPool.EMPTY; } @@ -226,7 +226,7 @@ public interface MPJBaseMethod extends Constants { return tableInfo.getFieldList().stream() .filter(i -> { if (ignoreLogicDelFiled) { - return !(AdapterHelper.getTableInfoAdapter().mpjHasLogic(tableInfo) && i.isLogicDelete()); + return !(AdapterHelper.getAdapter().mpjHasLogic(tableInfo) && i.isLogicDelete()); } return true; }).map(i -> mpjGetSqlSet(i, newPrefix)).filter(Objects::nonNull).collect(joining(NEWLINE)); diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/method/UpdateJoin.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/method/UpdateJoin.java index c9fd322..6b7a11a 100644 --- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/method/UpdateJoin.java +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/method/UpdateJoin.java @@ -64,7 +64,7 @@ public class UpdateJoin extends MPJAbstractMethod { if (fieldStrategy == FieldStrategy.NEVER) { return null; } - if (AdapterHelper.getTableInfoAdapter().mpjIsPrimitive(tableFieldInfo) || fieldStrategy == FieldStrategy.IGNORED) { + if (AdapterHelper.getAdapter().mpjIsPrimitive(tableFieldInfo) || fieldStrategy == FieldStrategy.IGNORED) { return sqlScript; } if (fieldStrategy == FieldStrategy.NOT_EMPTY && tableFieldInfo.isCharSequence()) { diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/toolkit/JSqlParserHelper.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/toolkit/JSqlParserHelper.java deleted file mode 100644 index b42c471..0000000 --- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/toolkit/JSqlParserHelper.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.github.yulichang.toolkit; - -import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; -import com.baomidou.mybatisplus.core.toolkit.StringUtils; -import com.github.yulichang.wrapper.interfaces.SelectWrapper; -import net.sf.jsqlparser.parser.CCJSqlParserUtil; -import net.sf.jsqlparser.schema.Column; -import net.sf.jsqlparser.statement.Statement; -import net.sf.jsqlparser.statement.select.*; - -import java.util.function.Consumer; - -/** - * @author yulichang - * @since 1.4.10 - */ -public final class JSqlParserHelper { - - /** - * 解析sql select字段 刚接触JSqlParser有更好的用法欢迎PR - * - * @param selectSql 要解析的select sql片段 - * @param columConsumer 解析的字段处理 - */ - public static void paresColum(SelectWrapper wrapper, String selectSql, Consumer columConsumer) throws Exception { - Statement statement = CCJSqlParserUtil.parse(String.format("SELECT %s FROM table %s %s", selectSql, wrapper.getAlias(), wrapper.getFrom())); - if (statement instanceof Select) { - Select select = (Select) statement; - SelectBody selectBody = select.getSelectBody(); - if (selectBody instanceof PlainSelect) { - PlainSelect plainSelect = (PlainSelect) selectBody; - if (CollectionUtils.isNotEmpty(plainSelect.getSelectItems())) { - for (SelectItem item : plainSelect.getSelectItems()) { - if (item instanceof SelectExpressionItem) { - String col; - SelectExpressionItem selectExpressionItem = (SelectExpressionItem) item; - if (null == selectExpressionItem.getAlias()) { - if (selectExpressionItem.getExpression() instanceof Column) { - col = ((Column) selectExpressionItem.getExpression()).getColumnName(); - } else { - col = selectExpressionItem.getExpression().toString(); - } - } else { - col = selectExpressionItem.getAlias().getName(); - } - if (StringUtils.isNotBlank(col)) { - columConsumer.accept(StringUtils.getTargetColumn(col)); - } - } - } - } - } - } - } -} diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/toolkit/KtWrapperUtils.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/toolkit/KtWrapperUtils.java index ca2482d..707f4e7 100644 --- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/toolkit/KtWrapperUtils.java +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/toolkit/KtWrapperUtils.java @@ -98,7 +98,7 @@ public class KtWrapperUtils { } StringBuilder sb = new StringBuilder(StringPool.EMPTY); for (TableFieldInfo fieldInfo : tableInfo.getFieldList()) { - if (AdapterHelper.getTableInfoAdapter().mpjHasLogic(tableInfo) && fieldInfo.isLogicDelete()) { + if (AdapterHelper.getAdapter().mpjHasLogic(tableInfo) && fieldInfo.isLogicDelete()) { continue; } Object val; diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/toolkit/WrapperUtils.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/toolkit/WrapperUtils.java index 615a1cd..8fd1356 100644 --- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/toolkit/WrapperUtils.java +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/toolkit/WrapperUtils.java @@ -98,7 +98,7 @@ public class WrapperUtils { } StringBuilder sb = new StringBuilder(StringPool.EMPTY); for (TableFieldInfo fieldInfo : tableInfo.getFieldList()) { - if (AdapterHelper.getTableInfoAdapter().mpjHasLogic(tableInfo) && fieldInfo.isLogicDelete()) { + if (AdapterHelper.getAdapter().mpjHasLogic(tableInfo) && fieldInfo.isLogicDelete()) { continue; } Object val; diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/DeleteJoinWrapper.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/DeleteJoinWrapper.java index bfbb174..3eb7da4 100644 --- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/DeleteJoinWrapper.java +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/DeleteJoinWrapper.java @@ -171,17 +171,17 @@ public class DeleteJoinWrapper extends JoinAbstractLambdaWrapper entityClass = getEntityClass(); TableInfo tableInfo = TableHelper.getAssert(entityClass); //检查 - boolean mainLogic = AdapterHelper.getTableInfoAdapter().mpjHasLogic(tableInfo); + boolean mainLogic = AdapterHelper.getAdapter().mpjHasLogic(tableInfo); boolean check = classList.stream().allMatch(t -> { TableInfo ti = TableHelper.getAssert(t); - return mainLogic == AdapterHelper.getTableInfoAdapter().mpjHasLogic(ti); + return mainLogic == AdapterHelper.getAdapter().mpjHasLogic(ti); }); if (!check) { throw ExceptionUtils.mpe("连表删除只适用于全部表(主表和副表)都是物理删除或全部都是逻辑删除, " + "不支持同时存在物理删除和逻辑删除 [物理删除->(%s)] [逻辑删除->(%s)]", - classList.stream().filter(t -> !AdapterHelper.getTableInfoAdapter().mpjHasLogic(TableHelper.getAssert(t))) + classList.stream().filter(t -> !AdapterHelper.getAdapter().mpjHasLogic(TableHelper.getAssert(t))) .map(Class::getSimpleName).collect(Collectors.joining(StringPool.COMMA)), - classList.stream().filter(t -> AdapterHelper.getTableInfoAdapter().mpjHasLogic(TableHelper.getAssert(t))) + classList.stream().filter(t -> AdapterHelper.getAdapter().mpjHasLogic(TableHelper.getAssert(t))) .map(Class::getSimpleName).collect(Collectors.joining(StringPool.COMMA))); } } diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/UpdateJoinWrapper.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/UpdateJoinWrapper.java index 1df4243..4dd1189 100644 --- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/UpdateJoinWrapper.java +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/UpdateJoinWrapper.java @@ -203,12 +203,12 @@ public class UpdateJoinWrapper extends JoinAbstractLambdaWrapper", obj.getClass().getSimpleName()); TableInfo tableInfo = TableHelper.getAssert(obj.getClass()); for (TableFieldInfo fieldInfo : tableInfo.getFieldList()) { - if (AdapterHelper.getTableInfoAdapter().mpjHasLogic(tableInfo) && fieldInfo.isLogicDelete()) { + if (AdapterHelper.getAdapter().mpjHasLogic(tableInfo) && fieldInfo.isLogicDelete()) { continue; } Object val; try { - Field field = AdapterHelper.getTableInfoAdapter().mpjGetField(fieldInfo, () -> { + Field field = AdapterHelper.getAdapter().mpjGetField(fieldInfo, () -> { Field field1 = ReflectionKit.getFieldMap(obj.getClass()).get(fieldInfo.getProperty()); field1.setAccessible(true); return field1; diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/interfaces/Query.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/interfaces/Query.java index a624a20..2a6d9a6 100644 --- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/interfaces/Query.java +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/interfaces/Query.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.TableInfo; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.core.toolkit.StringPool; import com.baomidou.mybatisplus.core.toolkit.support.SFunction; +import com.github.yulichang.toolkit.Constant; import com.github.yulichang.toolkit.LambdaUtils; import com.github.yulichang.toolkit.MPJReflectionKit; import com.github.yulichang.toolkit.TableHelper; @@ -97,7 +98,7 @@ public interface Query extends Serializable { */ default Children selectAs(String column, SFunction alias) { String name = LambdaUtils.getName(alias); - getSelectColum().add(new SelectString(column + Constants.AS + name, name)); + getSelectColum().add(new SelectString(column + Constant.AS + name, name)); return getChildren(); } @@ -110,7 +111,7 @@ public interface Query extends Serializable { Map cacheMap = ColumnCache.getMapField(LambdaUtils.getEntityClass(column)); SelectCache cache = cacheMap.get(LambdaUtils.getName(column)); String name = LambdaUtils.getName(alias); - getSelectColum().add(new SelectString(index + Constants.DOT + cache.getColumn() + Constants.AS + name, name)); + getSelectColum().add(new SelectString(index + Constants.DOT + cache.getColumn() + Constant.AS + name, name)); return getChildren(); } diff --git a/mybatis-plus-join-extension/src/main/java/com/github/yulichang/extension/mapping/mapper/MPJTableFieldInfo.java b/mybatis-plus-join-extension/src/main/java/com/github/yulichang/extension/mapping/mapper/MPJTableFieldInfo.java index 608fda7..4e40ba0 100644 --- a/mybatis-plus-join-extension/src/main/java/com/github/yulichang/extension/mapping/mapper/MPJTableFieldInfo.java +++ b/mybatis-plus-join-extension/src/main/java/com/github/yulichang/extension/mapping/mapper/MPJTableFieldInfo.java @@ -192,7 +192,7 @@ public class MPJTableFieldInfo { TableFieldInfo joinFieldInfo = joinTableInfo.getFieldList().stream().filter(f -> f.getProperty().equals(this.joinProperty)).findFirst().orElse(null); if (joinFieldInfo == null) { - if (AdapterHelper.getTableInfoAdapter().mpjHasPK(joinTableInfo) && this.joinProperty.equals(joinTableInfo.getKeyProperty())) { + if (AdapterHelper.getAdapter().mpjHasPK(joinTableInfo) && this.joinProperty.equals(joinTableInfo.getKeyProperty())) { this.joinColumn = joinTableInfo.getKeyColumn(); this.joinField = ReflectionKit.getFieldList(this.joinClass).stream().filter(i -> i.getName().equals(joinTableInfo.getKeyProperty())).findFirst().orElse(null); @@ -218,7 +218,7 @@ public class MPJTableFieldInfo { } TableInfo tableInfo = getTableInfo(this.entityType); - if (AdapterHelper.getTableInfoAdapter().mpjHasPK(tableInfo) && this.thisProperty.equals(tableInfo.getKeyProperty())) { + if (AdapterHelper.getAdapter().mpjHasPK(tableInfo) && this.thisProperty.equals(tableInfo.getKeyProperty())) { this.thisField = ReflectionKit.getFieldList(ClassUtils.getUserClass(entityType)).stream().filter(f -> f.getName().equals(tableInfo.getKeyProperty())).findFirst().orElse(null); Assert.notNull(this.thisField, "注解属性thisField不存在 %s , %s", entityType.getName(), @@ -313,7 +313,7 @@ public class MPJTableFieldInfo { } private Field getField(Class table, TableFieldInfo tableFieldInfo) { - return AdapterHelper.getTableInfoAdapter().mpjGetField(tableFieldInfo, () -> + return AdapterHelper.getAdapter().mpjGetField(tableFieldInfo, () -> ReflectionKit.getFieldMap(table).get(tableFieldInfo.getProperty())); } diff --git a/mybatis-plus-join-test/pom.xml b/mybatis-plus-join-test/pom.xml index ed19eb7..7d0e670 100644 --- a/mybatis-plus-join-test/pom.xml +++ b/mybatis-plus-join-test/pom.xml @@ -24,7 +24,7 @@ test-mapping - + @@ -51,7 +51,7 @@ 1.4.11 - 3.5.5 + 3.5.6 1.8 1.8 diff --git a/mybatis-plus-join-test/test-springboot3-jdk17/pom.xml b/mybatis-plus-join-test/test-springboot3-jdk17/pom.xml index f76fbe8..be420d9 100644 --- a/mybatis-plus-join-test/test-springboot3-jdk17/pom.xml +++ b/mybatis-plus-join-test/test-springboot3-jdk17/pom.xml @@ -15,7 +15,7 @@ 1.4.11 - 3.5.5 + 3.5.6 17 17 diff --git a/pom.xml b/pom.xml index cb2c761..231bc6f 100644 --- a/pom.xml +++ b/pom.xml @@ -41,7 +41,7 @@ 1.4.11 - 3.5.5 + 3.5.6 1.8 1.8