소스 검색

代码优化

hubin 7 년 전
부모
커밋
ee40ae1023

+ 18 - 20
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/assist/ISqlRunner.java

@@ -14,34 +14,32 @@ import com.baomidou.mybatisplus.core.pagination.Page;
  * @author yuxiaobin
  * @date 2018/2/7
  */
-public abstract class ISqlRunner {
+public interface ISqlRunner {
 
-    public static final String INSERT = "com.baomidou.mybatisplus.core.mapper.SqlRunner.Insert";
-    public static final String DELETE = "com.baomidou.mybatisplus.core.mapper.SqlRunner.Delete";
-    public static final String UPDATE = "com.baomidou.mybatisplus.core.mapper.SqlRunner.Update";
-    public static final String SELECT_LIST = "com.baomidou.mybatisplus.core.mapper.SqlRunner.SelectList";
-    public static final String SELECT_OBJS = "com.baomidou.mybatisplus.core.mapper.SqlRunner.SelectObjs";
-    public static final String COUNT = "com.baomidou.mybatisplus.core.mapper.SqlRunner.Count";
-    public static final String SQL_SCRIPT = "${sql}";
-    public static final String SQL = "sql";
+    String INSERT = "com.baomidou.mybatisplus.core.mapper.SqlRunner.Insert";
+    String DELETE = "com.baomidou.mybatisplus.core.mapper.SqlRunner.Delete";
+    String UPDATE = "com.baomidou.mybatisplus.core.mapper.SqlRunner.Update";
+    String SELECT_LIST = "com.baomidou.mybatisplus.core.mapper.SqlRunner.SelectList";
+    String SELECT_OBJS = "com.baomidou.mybatisplus.core.mapper.SqlRunner.SelectObjs";
+    String COUNT = "com.baomidou.mybatisplus.core.mapper.SqlRunner.Count";
+    String SQL_SCRIPT = "${sql}";
+    String SQL = "sql";
 
-    public static SqlSessionFactory FACTORY;
+    boolean insert(String sql, Object... args);
 
-    public abstract boolean insert(String sql, Object... args);
+    boolean delete(String sql, Object... args);
 
-    public abstract boolean delete(String sql, Object... args);
+    boolean update(String sql, Object... args);
 
-    public abstract boolean update(String sql, Object... args);
+    List<Map<String, Object>> selectList(String sql, Object... args);
 
-    public abstract List<Map<String, Object>> selectList(String sql, Object... args);
+    List<Object> selectObjs(String sql, Object... args);
 
-    public abstract List<Object> selectObjs(String sql, Object... args);
+    Object selectObj(String sql, Object... args);
 
-    public abstract Object selectObj(String sql, Object... args);
+    int selectCount(String sql, Object... args);
 
-    public abstract int selectCount(String sql, Object... args);
+    Map<String, Object> selectOne(String sql, Object... args);
 
-    public abstract Map<String, Object> selectOne(String sql, Object... args);
-
-    public abstract Page<Map<String, Object>> selectPage(Page page, String sql, Object... args);
+    Page<Map<String, Object>> selectPage(Page page, String sql, Object... args);
 }

+ 1 - 2
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/handlers/SqlReservedWordsHandler.java

@@ -19,7 +19,7 @@ import com.baomidou.mybatisplus.core.enums.IDBType;
  */
 public abstract class SqlReservedWordsHandler {
 
-    public static final Set<String> RESERVED_WORDS;
+    public static final Set<String> RESERVED_WORDS = new HashSet<>();
 
     static {
         String[] words = {"AUDIT", "VOLUMES", "MINVALUE", "STATIC", "FLOOR", "CATALOG", "YEAR", "TRIGGER_CATALOG", "WLM",
@@ -128,7 +128,6 @@ public abstract class SqlReservedWordsHandler {
             "DEC", "CASCADED", "ENCRYPTED", "CONTAINSTABLE", "DYNAMIC_FUNCTION", "CONDITION_NUMBER", "BEFORE", "DB2GENERAL",
             "DECLARE", "SUPERUSER", "WHILE"};
 
-        RESERVED_WORDS = new HashSet<>(words.length);
         Collections.addAll(RESERVED_WORDS, words);
     }
 

+ 3 - 3
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/injector/AbstractMethod.java

@@ -377,13 +377,13 @@ public abstract class AbstractMethod {
         // 验证逻辑
         if (fieldStrategy == FieldStrategy.NOT_EMPTY) {
             if (StringUtils.isCharSequence(propertyType)) {
-                return String.format("\n\t<if test=\"%s!=null and %s!=''\">", property, property);
+                return String.format("<if test=\"%s!=null and %s!=''\">", property, property);
             } else {
-                return String.format("\n\t<if test=\"%s!=null \">", property);
+                return String.format("<if test=\"%s!=null \">", property);
             }
         } else {
             // FieldStrategy.NOT_NULL
-            return String.format("\n\t<if test=\"%s!=null\">", property);
+            return String.format("<if test=\"%s!=null\">", property);
         }
     }
 

+ 3 - 2
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/metadata/Column.java

@@ -21,6 +21,7 @@ import com.baomidou.mybatisplus.core.assist.ISqlRunner;
 import com.baomidou.mybatisplus.core.config.GlobalConfig;
 import com.baomidou.mybatisplus.core.toolkit.GlobalConfigUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.sql.SqlHelper;
 
 /**
  * <p>
@@ -64,8 +65,8 @@ public class Column implements Serializable {
             return StringUtils.EMPTY;
         }
         String quote = null;
-        if (isEscape() && ISqlRunner.FACTORY != null) {
-            GlobalConfig globalConfig = GlobalConfigUtils.getGlobalConfig(ISqlRunner.FACTORY.getConfiguration());
+        if (isEscape() && SqlHelper.FACTORY != null) {
+            GlobalConfig globalConfig = GlobalConfigUtils.getGlobalConfig(SqlHelper.FACTORY.getConfiguration());
             // TODO 这里调整了转义
             // quote = globalConfig.getIdentifierQuote() == null ? globalConfig.getDbType().getQuote() : globalConfig.getIdentifierQuote();
         }

+ 2 - 1
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/TableInfoHelper.java

@@ -49,6 +49,7 @@ import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
 import com.baomidou.mybatisplus.core.incrementer.IKeyGenerator;
 import com.baomidou.mybatisplus.core.metadata.TableFieldInfo;
 import com.baomidou.mybatisplus.core.metadata.TableInfo;
+import com.baomidou.mybatisplus.core.toolkit.sql.SqlHelper;
 import com.baomidou.mybatisplus.core.toolkit.support.LambdaCache;
 import com.baomidou.mybatisplus.core.toolkit.support.Property;
 import com.baomidou.mybatisplus.core.toolkit.support.SerializedLambda;
@@ -475,7 +476,7 @@ public class TableInfoHelper {
         Configuration configuration = sqlSessionFactory.getConfiguration();
         GlobalConfig globalConfig = GlobalConfigUtils.getGlobalConfig(configuration);
         // SqlRunner
-        ISqlRunner.FACTORY = sqlSessionFactory;
+        SqlHelper.FACTORY = sqlSessionFactory;
         if (globalConfig == null) {
             GlobalConfig defaultCache = GlobalConfigUtils.defaults();
             defaultCache.setSqlSessionFactory(sqlSessionFactory);

+ 2 - 0
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/sql/SqlHelper.java

@@ -45,6 +45,8 @@ import com.baomidou.mybatisplus.core.toolkit.TableInfoHelper;
 public class SqlHelper {
 
     private static final Log logger = LogFactory.getLog(SqlHelper.class);
+    public static SqlSessionFactory FACTORY;
+
 
     /**
      * <p>

+ 1 - 1
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/sql/SqlUtils.java

@@ -36,7 +36,7 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 public class SqlUtils {
 
     private final static SqlFormatter SQL_FORMATTER = new SqlFormatter();
-    public static ISqlParser COUNT_SQL_PARSER = null;
+    private static ISqlParser COUNT_SQL_PARSER = null;
     private static Class<ISqlParser> DEFAULT_CLASS = null;
 
     static {

+ 3 - 2
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/PerformanceInterceptor.java

@@ -128,8 +128,9 @@ public class PerformanceInterceptor implements Interceptor {
                     Class<?> clazz = Class.forName(stmtClassName);
                     oracleGetOriginalSqlMethod = getMethodRegular(clazz, "getOriginalSql");
                     if (oracleGetOriginalSqlMethod != null) {
-                        oracleGetOriginalSqlMethod.setAccessible(true);//OraclePreparedStatementWrapper is not a public class, need set this.
-                        if (oracleGetOriginalSqlMethod != null) {
+                        //OraclePreparedStatementWrapper is not a public class, need set this.
+                        oracleGetOriginalSqlMethod.setAccessible(true);
+                        if (null != oracleGetOriginalSqlMethod) {
                             Object stmtSql = oracleGetOriginalSqlMethod.invoke(statement);
                             if (stmtSql != null && stmtSql instanceof String) {
                                 originalSql = (String) stmtSql;

+ 2 - 2
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/tenant/TenantSqlParser.java

@@ -188,8 +188,8 @@ public class TenantSqlParser extends AbstractJsqlParser {
     protected void processFromItem(FromItem fromItem) {
         if (fromItem instanceof SubJoin) {
             SubJoin subJoin = (SubJoin) fromItem;
-            if (subJoin.getJoin() != null) {
-                processJoin(subJoin.getJoin());
+            if (subJoin.getJoinList() != null) {
+                subJoin.getJoinList().forEach(j -> processJoin(j));
             }
             if (subJoin.getLeft() != null) {
                 processFromItem(subJoin.getLeft());

+ 4 - 3
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/spring/MybatisSqlSessionFactoryBean.java

@@ -65,6 +65,7 @@ import com.baomidou.mybatisplus.core.config.GlobalConfig;
 import com.baomidou.mybatisplus.core.enums.IEnum;
 import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
 import com.baomidou.mybatisplus.core.toolkit.GlobalConfigUtils;
+import com.baomidou.mybatisplus.core.toolkit.sql.SqlHelper;
 import com.baomidou.mybatisplus.extension.toolkit.JdbcUtils;
 import com.baomidou.mybatisplus.extension.toolkit.PackageHelper;
 import com.baomidou.mybatisplus.extension.toolkit.SqlRunner;
@@ -563,14 +564,14 @@ public class MybatisSqlSessionFactoryBean implements FactoryBean<SqlSessionFacto
 //        GlobalConfigUtils.setMetaData(dataSource, globalConfig);
         try (Connection connection = dataSource.getConnection()) {
             // 设置全局关键字
-            globalConfig.setSqlKeywords(connection.getMetaData().getSQLKeywords());
-            globalConfig.setDbType(JdbcUtils.getDbType(connection.getMetaData().getURL()));
+            //globalConfig.getDbConfig().setSqlKeywords(connection.getMetaData().getSQLKeywords());
+            globalConfig.getDbConfig().setDbType(JdbcUtils.getDbType(connection.getMetaData().getURL()));
         } catch (Exception e) {
             throw new MybatisPlusException("Error: GlobalConfigUtils setMetaData Fail !  Cause:" + e);
         }
         SqlSessionFactory sqlSessionFactory = this.sqlSessionFactoryBuilder.build(configuration);
         // TODO SqlRunner
-        SqlRunner.FACTORY = sqlSessionFactory;
+        SqlHelper.FACTORY = sqlSessionFactory;
         // TODO 缓存 sqlSessionFactory
         globalConfig.setSqlSessionFactory(sqlSessionFactory);
         // TODO 设置全局参数属性

+ 4 - 4
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/toolkit/SqlRunner.java

@@ -37,7 +37,7 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils;
  * @author Caratacus
  * @Date 2016-12-11
  */
-public class SqlRunner extends ISqlRunner {
+public class SqlRunner implements ISqlRunner {
 
     // 单例Query
     public static final SqlRunner DEFAULT = new SqlRunner();
@@ -48,7 +48,7 @@ public class SqlRunner extends ISqlRunner {
     private Class<?> clazz;
 
     public SqlRunner() {
-        this.sqlSessionFactory = FACTORY;
+        this.sqlSessionFactory = SqlHelper.FACTORY;
     }
 
     public SqlRunner(Class<?> clazz) {
@@ -65,7 +65,7 @@ public class SqlRunner extends ISqlRunner {
     public static SqlRunner db() {
         // 初始化的静态变量 还是有前后加载的问题 该判断只会执行一次
         if (DEFAULT.sqlSessionFactory == null) {
-            DEFAULT.sqlSessionFactory = FACTORY;
+            DEFAULT.sqlSessionFactory = SqlHelper.FACTORY;
         }
         return DEFAULT;
     }
@@ -178,7 +178,7 @@ public class SqlRunner extends ISqlRunner {
      * <p/>
      */
     private SqlSession sqlSession() {
-        return (clazz != null) ? SqlHelper.sqlSession(clazz) : GlobalConfigUtils.getSqlSession(FACTORY.getConfiguration());
+        return (clazz != null) ? SqlHelper.sqlSession(clazz) : GlobalConfigUtils.getSqlSession(SqlHelper.FACTORY.getConfiguration());
     }
 
 }

+ 6 - 2
mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/StrategyConfig.java

@@ -34,7 +34,7 @@ public class StrategyConfig {
     /**
      * 表名、字段名、是否使用下划线命名(默认 false)
      */
-    public static boolean DB_COLUMN_UNDERLINE = false;
+    private boolean dbColumnUnderline = false;
 
     /**
      * 是否大写命名
@@ -164,8 +164,12 @@ public class StrategyConfig {
      */
     private List<TableFill> tableFillList = null;
 
+    public boolean isDbColumnUnderline() {
+        return dbColumnUnderline;
+    }
+
     public StrategyConfig setDbColumnUnderline(boolean dbColumnUnderline) {
-        DB_COLUMN_UNDERLINE = dbColumnUnderline;
+        this.dbColumnUnderline = dbColumnUnderline;
         return this;
     }
 

+ 1 - 1
mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/po/TableField.java

@@ -57,7 +57,7 @@ public class TableField {
             this.convert = false;
         } else {
             // 转换字段
-            if (StrategyConfig.DB_COLUMN_UNDERLINE) {
+            if (strategyConfig.isDbColumnUnderline()) {
                 // 包含大写处理
                 if (StringUtils.containsUpperCase(name)) {
                     this.convert = true;