This commit is contained in:
admin 2021-02-03 18:46:58 +08:00
parent 088d39ebcc
commit e26aad80b2
31 changed files with 197 additions and 234 deletions

139
pom.xml
View File

@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.github.yulichang</groupId>
<artifactId>mybatis-plus-join</artifactId>
<version>1.0.0-SNAPSHOT</version>
<version>1.0.2</version>
<name>mp</name>
<description>An enhanced toolkit of Mybatis-Plus to simplify development.</description>
<url>https://github.com/yulichang/mybatis-plus-join</url>
@ -34,18 +34,6 @@
<jdkVersion.test>1.8</jdkVersion.test>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.3.2.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>com.baomidou</groupId>
@ -62,22 +50,13 @@
</dependency>
</dependencies>
<distributionManagement>
<snapshotRepository>
<id>ossrh</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
</snapshotRepository>
<repository>
<id>ossrh</id>
<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
</repository>
</distributionManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.2.1</version>
<version>2.2.1</version>
<executions>
<execution>
<id>attach-sources</id>
@ -100,6 +79,33 @@
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.5</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>1.6.8</version>
<extensions>true</extensions>
<configuration>
<serverId>ossrh</serverId>
<nexusUrl>https://oss.sonatype.org/</nexusUrl>
<autoReleaseAfterClose>true</autoReleaseAfterClose>
</configuration>
</plugin>
</plugins>
</build>
@ -117,55 +123,10 @@
<id>release</id>
<build>
<plugins>
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>1.6.7</version>
<extensions>true</extensions>
<configuration>
<serverId>ossrh</serverId>
<nexusUrl>https://oss.sonatype.org/</nexusUrl>
<autoReleaseAfterClose>true</autoReleaseAfterClose>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.5</version>
<configuration>
<autoVersionSubmodules>true</autoVersionSubmodules>
<useReleaseProfile>false</useReleaseProfile>
<releaseProfiles>release</releaseProfiles>
<goals>deploy</goals>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.2.1</version>
<version>2.2.1</version>
<executions>
<execution>
<id>attach-sources</id>
@ -188,8 +149,46 @@
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.5</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>1.6.7</version>
<extensions>true</extensions>
<configuration>
<serverId>ossrh</serverId>
<nexusUrl>https://oss.sonatype.org/</nexusUrl>
<autoReleaseAfterClose>true</autoReleaseAfterClose>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<distributionManagement>
<snapshotRepository>
<id>ossrh</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
</snapshotRepository>
<repository>
<id>ossrh</id>
<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
</repository>
</distributionManagement>
</project>

View File

@ -1,98 +0,0 @@
package com.github.mybatisplus.interceptor;
import com.baomidou.mybatisplus.core.MybatisParameterHandler;
import com.baomidou.mybatisplus.core.toolkit.ClassUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.github.mybatisplus.toolkit.Constant;
import org.apache.ibatis.executor.resultset.DefaultResultSetHandler;
import org.apache.ibatis.executor.resultset.ResultSetHandler;
import org.apache.ibatis.plugin.*;
import org.springframework.cglib.beans.BeanMap;
import java.lang.reflect.Field;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
/**
* 结果封装
*
* @author yulichang
*/
@Intercepts({@Signature(type = ResultSetHandler.class, method = "handleResultSets", args = {Statement.class})})
public class MyResultInterceptor implements Interceptor {
private static Field parameterHandler = null;
static {
try {
parameterHandler = DefaultResultSetHandler.class.getDeclaredField("parameterHandler");
parameterHandler.setAccessible(true);
} catch (NoSuchFieldException e) {
e.printStackTrace();
}
}
@Override
public Object intercept(Invocation invocation) throws Throwable {
DefaultResultSetHandler handler = (DefaultResultSetHandler) invocation.getTarget();
Object result = invocation.proceed();
if (Objects.isNull(result)) {
return null;
}
Class<?> val = getFieldVal(handler);
if (val == null) {
return result;
}
if (result instanceof ArrayList) {
List<Object> res = new ArrayList<>();
for (Object i : ((ArrayList) result)) {
if (i instanceof Map) {
res.add(mapToBean((Map<String, ?>) i, val));
} else {
return result;
}
}
return res;
} else {
return mapToBean((Map<String, ?>) result, val);
}
}
public static <T> T mapToBean(Map<String, ?> map, Class<T> clazz) {
T bean = ClassUtils.newInstance(clazz);
BeanMap beanMap = BeanMap.create(bean);
map.forEach((k, v) -> beanMap.put(StringUtils.underlineToCamel(k), v));
return bean;
}
/**
* 反射获取方法中的clazz
* 先用反射获取,应该是可以通过拓展框架直接获取的, todo
*
* @see MybatisParameterHandler
*/
public static Class<?> getFieldVal(DefaultResultSetHandler handler) {
try {
MybatisParameterHandler mybatisParameterHandler = (MybatisParameterHandler) parameterHandler.get(handler);
Object object = mybatisParameterHandler.getParameterObject();
if (Objects.isNull(object)) {
return null;
}
if (object instanceof Map) {
return (Class<?>) ((Map<?, ?>) object).get(Constant.CLAZZ);
}
return null;
} catch (Exception e) {
return null;
}
}
@Override
public Object plugin(Object target) {
return Plugin.wrap(target, this);
}
}

View File

@ -1,7 +1,7 @@
package com.github.mybatisplus;
package com.github.yulichang;
import com.github.mybatisplus.injector.MySqlInjector;
import com.github.mybatisplus.interceptor.MyResultInterceptor;
import com.github.yulichang.injector.MySqlInjector;
import com.github.yulichang.interceptor.MyResultInterceptor;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

View File

@ -1,10 +1,10 @@
package com.github.mybatisplus.base;
package com.github.yulichang.base;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.github.mybatisplus.interfaces.BaseJoin;
import com.github.mybatisplus.toolkit.Constant;
import com.github.yulichang.interfaces.BaseJoin;
import com.github.yulichang.toolkit.Constant;
import org.apache.ibatis.annotations.Param;
import java.util.List;

View File

@ -1,8 +1,8 @@
package com.github.mybatisplus.base;
package com.github.yulichang.base;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.mybatisplus.interfaces.BaseJoin;
import com.github.yulichang.interfaces.BaseJoin;
import java.util.List;
import java.util.Map;

View File

@ -1,8 +1,8 @@
package com.github.mybatisplus.base;
package com.github.yulichang.base;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.mybatisplus.interfaces.BaseJoin;
import com.github.yulichang.interfaces.BaseJoin;
import java.util.List;
import java.util.Map;

View File

@ -1,8 +1,8 @@
package com.github.mybatisplus.injector;
package com.github.yulichang.injector;
import com.baomidou.mybatisplus.core.injector.AbstractMethod;
import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector;
import com.github.mybatisplus.method.*;
import com.github.yulichang.method.*;
import java.util.List;

View File

@ -0,0 +1,73 @@
package com.github.yulichang.interceptor;
import com.baomidou.mybatisplus.core.MybatisParameterHandler;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.github.yulichang.toolkit.Constant;
import org.apache.ibatis.executor.statement.StatementHandler;
import org.apache.ibatis.mapping.MappedStatement;
import org.apache.ibatis.mapping.ResultMap;
import org.apache.ibatis.plugin.*;
import java.lang.reflect.Field;
import java.sql.Connection;
import java.util.List;
import java.util.Map;
import java.util.Objects;
/**
* 结果封装
*
* @author yulichang
*/
@Intercepts({
@Signature(type = StatementHandler.class, method = "prepare", args = {Connection.class, Integer.class}),
})
//@SuppressWarnings("all")
public class MyResultInterceptor implements Interceptor {
/**
* 缓存初始化反射字段
* todo
* 应该可以想mybatis-plus那样用自定义的MybatisParameterHandler直接获取mappedStatement和resultMap,而不是反射获取
*/
private static Field mappedStatement = null;
private static Field type = null;
static {
try {
mappedStatement = MybatisParameterHandler.class.getDeclaredField("mappedStatement");
mappedStatement.setAccessible(true);
type = ResultMap.class.getDeclaredField("type");
type.setAccessible(true);
} catch (NoSuchFieldException e) {
e.printStackTrace();
}
}
@Override
public Object intercept(Invocation invocation) throws Throwable {
if (Objects.nonNull(invocation.getTarget()) && invocation.getTarget() instanceof MybatisParameterHandler) {
MybatisParameterHandler mybatisParameterHandler = (MybatisParameterHandler) invocation.getTarget();
Map<String, ?> map = (Map<String, ?>) mybatisParameterHandler.getParameterObject();
if (CollectionUtils.isNotEmpty(map)) {
try {
Class<?> resClazz = (Class<?>) map.get(Constant.CLAZZ);
MappedStatement statement = (MappedStatement) mappedStatement.get(mybatisParameterHandler);
List<ResultMap> list = statement.getResultMaps();
if (CollectionUtils.isNotEmpty(list)) {
ResultMap resultMap = list.get(0);
type.set(resultMap, resClazz);
}
} catch (Exception e) {
return invocation.proceed();
}
}
}
return invocation.proceed();
}
@Override
public Object plugin(Object target) {
return Plugin.wrap(target, this);
}
}

View File

@ -1,4 +1,4 @@
package com.github.mybatisplus.interfaces;
package com.github.yulichang.interfaces;
/**
* @author yulichang

View File

@ -1,10 +1,10 @@
package com.github.mybatisplus.method;
package com.github.yulichang.method;
import com.baomidou.mybatisplus.core.injector.AbstractMethod;
import com.baomidou.mybatisplus.core.metadata.TableInfo;
import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.core.toolkit.sql.SqlScriptUtils;
import com.github.mybatisplus.toolkit.Constant;
import com.github.yulichang.toolkit.Constant;
import java.util.ArrayList;
import java.util.List;

View File

@ -1,12 +1,9 @@
package com.github.mybatisplus.method;
package com.github.yulichang.method;
import com.baomidou.mybatisplus.core.metadata.TableInfo;
import com.github.mybatisplus.toolkit.Constant;
import org.apache.ibatis.mapping.MappedStatement;
import org.apache.ibatis.mapping.SqlSource;
import java.util.Map;
/**
* copy {@link com.baomidou.mybatisplus.core.injector.methods.SelectMaps}
*/
@ -18,6 +15,6 @@ public class SelectJoinList extends MyAbstractMethod {
String sql = String.format(sqlMethod.getSql(), sqlSelectColumns(tableInfo, true),
tableInfo.getTableName(), sqlWhereEntityWrapper(true, tableInfo), sqlComment());
SqlSource sqlSource = languageDriver.createSqlSource(configuration, sql, modelClass);
return this.addSelectMappedStatementForOther(mapperClass, sqlMethod.getMethod(), sqlSource, Map.class);
return this.addSelectMappedStatementForOther(mapperClass, sqlMethod.getMethod(), sqlSource, Object.class);
}
}

View File

@ -1,4 +1,4 @@
package com.github.mybatisplus.method;
package com.github.yulichang.method;
import com.baomidou.mybatisplus.core.metadata.TableInfo;
import org.apache.ibatis.mapping.MappedStatement;

View File

@ -1,7 +1,6 @@
package com.github.mybatisplus.method;
package com.github.yulichang.method;
import com.baomidou.mybatisplus.core.metadata.TableInfo;
import com.github.mybatisplus.toolkit.Constant;
import org.apache.ibatis.mapping.MappedStatement;
import org.apache.ibatis.mapping.SqlSource;

View File

@ -1,7 +1,6 @@
package com.github.mybatisplus.method;
package com.github.yulichang.method;
import com.baomidou.mybatisplus.core.metadata.TableInfo;
import com.github.mybatisplus.toolkit.Constant;
import org.apache.ibatis.mapping.MappedStatement;
import org.apache.ibatis.mapping.SqlSource;

View File

@ -1,12 +1,9 @@
package com.github.mybatisplus.method;
package com.github.yulichang.method;
import com.baomidou.mybatisplus.core.metadata.TableInfo;
import com.github.mybatisplus.toolkit.Constant;
import org.apache.ibatis.mapping.MappedStatement;
import org.apache.ibatis.mapping.SqlSource;
import java.util.Map;
/**
* copy {@link com.baomidou.mybatisplus.core.injector.methods.SelectMaps}
*/
@ -18,6 +15,6 @@ public class SelectJoinOne extends MyAbstractMethod {
String sql = String.format(sqlMethod.getSql(), sqlSelectColumns(tableInfo, true),
tableInfo.getTableName(), sqlWhereEntityWrapper(true, tableInfo), sqlComment());
SqlSource sqlSource = languageDriver.createSqlSource(configuration, sql, modelClass);
return this.addSelectMappedStatementForOther(mapperClass, sqlMethod.getMethod(), sqlSource, Map.class);
return this.addSelectMappedStatementForOther(mapperClass, sqlMethod.getMethod(), sqlSource, Object.class);
}
}

View File

@ -1,12 +1,9 @@
package com.github.mybatisplus.method;
package com.github.yulichang.method;
import com.baomidou.mybatisplus.core.metadata.TableInfo;
import com.github.mybatisplus.toolkit.Constant;
import org.apache.ibatis.mapping.MappedStatement;
import org.apache.ibatis.mapping.SqlSource;
import java.util.Map;
/**
* copy {@link com.baomidou.mybatisplus.core.injector.methods.SelectMaps}
*/
@ -18,6 +15,6 @@ public class SelectJoinPage extends MyAbstractMethod {
String sql = String.format(sqlMethod.getSql(), sqlSelectColumns(tableInfo, true),
tableInfo.getTableName(), sqlWhereEntityWrapper(true, tableInfo), sqlComment());
SqlSource sqlSource = languageDriver.createSqlSource(configuration, sql, modelClass);
return this.addSelectMappedStatementForOther(mapperClass, sqlMethod.getMethod(), sqlSource, Map.class);
return this.addSelectMappedStatementForOther(mapperClass, sqlMethod.getMethod(), sqlSource, Object.class);
}
}

View File

@ -1,4 +1,4 @@
package com.github.mybatisplus.method;
package com.github.yulichang.method;
import java.util.Arrays;
import java.util.List;

View File

@ -1,4 +1,4 @@
package com.github.mybatisplus.query;
package com.github.yulichang.query;
import com.baomidou.mybatisplus.core.conditions.AbstractWrapper;
import com.baomidou.mybatisplus.core.toolkit.Assert;
@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.core.toolkit.support.ColumnCache;
import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
import com.baomidou.mybatisplus.core.toolkit.support.SerializedLambda;
import com.github.mybatisplus.toolkit.Constant;
import com.github.yulichang.toolkit.Constant;
import org.apache.ibatis.reflection.property.PropertyNamer;
import java.util.Arrays;

View File

@ -1,4 +1,4 @@
package com.github.mybatisplus.query;
package com.github.yulichang.query;
import com.baomidou.mybatisplus.core.conditions.SharedString;
import com.baomidou.mybatisplus.core.conditions.query.Query;
@ -11,8 +11,8 @@ import com.baomidou.mybatisplus.core.toolkit.Assert;
import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
import com.github.mybatisplus.query.interfaces.MyJoin;
import com.github.mybatisplus.toolkit.Constant;
import com.github.yulichang.query.interfaces.MyJoin;
import com.github.yulichang.toolkit.Constant;
import java.util.ArrayList;
import java.util.Arrays;

View File

@ -1,4 +1,4 @@
package com.github.mybatisplus.query;
package com.github.yulichang.query;
import com.baomidou.mybatisplus.core.conditions.AbstractWrapper;
import com.baomidou.mybatisplus.core.conditions.SharedString;
@ -10,8 +10,8 @@ import com.baomidou.mybatisplus.core.metadata.TableInfoHelper;
import com.baomidou.mybatisplus.core.toolkit.ArrayUtils;
import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.github.mybatisplus.query.interfaces.MyJoin;
import com.github.mybatisplus.toolkit.Constant;
import com.github.yulichang.query.interfaces.MyJoin;
import com.github.yulichang.toolkit.Constant;
import java.util.ArrayList;
import java.util.List;

View File

@ -1,7 +1,7 @@
package com.github.mybatisplus.query.interfaces;
package com.github.yulichang.query.interfaces;
import com.github.mybatisplus.interfaces.BaseJoin;
import com.github.mybatisplus.toolkit.Constant;
import com.github.yulichang.interfaces.BaseJoin;
import com.github.yulichang.toolkit.Constant;
/**
* @author yulichang

View File

@ -1,4 +1,4 @@
package com.github.mybatisplus.toolkit;
package com.github.yulichang.toolkit;
import com.baomidou.mybatisplus.core.toolkit.StringPool;

View File

@ -1,4 +1,4 @@
package com.github.mybatisplus.toolkit;
package com.github.yulichang.toolkit;
import com.baomidou.mybatisplus.core.toolkit.LambdaUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;

View File

@ -1,4 +1,4 @@
package com.github.mybatisplus.wrapper;
package com.github.yulichang.wrapper;
import com.baomidou.mybatisplus.core.metadata.TableInfo;
import com.baomidou.mybatisplus.core.metadata.TableInfoHelper;
@ -8,7 +8,7 @@ import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.core.toolkit.support.ColumnCache;
import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
import com.baomidou.mybatisplus.core.toolkit.support.SerializedLambda;
import com.github.mybatisplus.toolkit.MyLambdaUtils;
import com.github.yulichang.toolkit.MyLambdaUtils;
import org.apache.ibatis.reflection.property.PropertyNamer;
import java.util.Arrays;

View File

@ -1,4 +1,4 @@
package com.github.mybatisplus.wrapper;
package com.github.yulichang.wrapper;
import com.baomidou.mybatisplus.core.conditions.ISqlSegment;
import com.baomidou.mybatisplus.core.conditions.SharedString;
@ -12,8 +12,8 @@ import com.baomidou.mybatisplus.core.toolkit.*;
import com.baomidou.mybatisplus.core.toolkit.sql.SqlUtils;
import com.baomidou.mybatisplus.core.toolkit.sql.StringEscape;
import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
import com.github.mybatisplus.wrapper.interfaces.MyCompare;
import com.github.mybatisplus.wrapper.interfaces.MyFunc;
import com.github.yulichang.wrapper.interfaces.MyCompare;
import com.github.yulichang.wrapper.interfaces.MyFunc;
import java.util.Arrays;
import java.util.Collection;

View File

@ -1,4 +1,4 @@
package com.github.mybatisplus.wrapper;
package com.github.yulichang.wrapper;
import com.baomidou.mybatisplus.core.conditions.SharedString;
import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments;
@ -10,10 +10,10 @@ import com.baomidou.mybatisplus.core.toolkit.Assert;
import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
import com.github.mybatisplus.toolkit.Constant;
import com.github.mybatisplus.toolkit.MyLambdaUtils;
import com.github.mybatisplus.wrapper.interfaces.MyLambdaJoin;
import com.github.mybatisplus.wrapper.interfaces.MySFunctionQuery;
import com.github.yulichang.toolkit.Constant;
import com.github.yulichang.toolkit.MyLambdaUtils;
import com.github.yulichang.wrapper.interfaces.MyLambdaJoin;
import com.github.yulichang.wrapper.interfaces.MySFunctionQuery;
import java.util.ArrayList;
import java.util.List;

View File

@ -1,4 +1,4 @@
package com.github.mybatisplus.wrapper.interfaces;
package com.github.yulichang.wrapper.interfaces;
import com.baomidou.mybatisplus.core.toolkit.support.SFunction;

View File

@ -1,4 +1,4 @@
package com.github.mybatisplus.wrapper.interfaces;
package com.github.yulichang.wrapper.interfaces;
import com.baomidou.mybatisplus.core.toolkit.support.SFunction;

View File

@ -1,8 +1,8 @@
package com.github.mybatisplus.wrapper.interfaces;
package com.github.yulichang.wrapper.interfaces;
import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
import com.github.mybatisplus.interfaces.BaseJoin;
import com.github.mybatisplus.toolkit.Constant;
import com.github.yulichang.interfaces.BaseJoin;
import com.github.yulichang.toolkit.Constant;
/**
* @author yulichang

View File

@ -1,4 +1,4 @@
package com.github.mybatisplus.wrapper.interfaces;
package com.github.yulichang.wrapper.interfaces;
import com.baomidou.mybatisplus.core.metadata.TableFieldInfo;
import com.baomidou.mybatisplus.core.toolkit.support.SFunction;

View File

@ -1,2 +1,2 @@
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.github.mybatisplus.MybatisPlusConfiguration
com.github.yulichang.MybatisPlusConfiguration