瀏覽代碼

重构全局配置

hubin 7 年之前
父節點
當前提交
809a3ea355
共有 40 個文件被更改,包括 385 次插入527 次删除
  1. 3 3
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/MybatisSessionFactoryBuilder.java
  2. 4 0
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/assist/package-info.java
  3. 147 0
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/config/DbConfig.java
  4. 4 0
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/config/package-info.java
  5. 4 0
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/enums/package-info.java
  6. 4 0
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/exceptions/package-info.java
  7. 1 0
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/handlers/MetaObjectHandler.java
  8. 15 16
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/handlers/SqlReservedWordsHandler.java
  9. 4 0
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/handlers/package-info.java
  10. 4 0
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/incrementer/package-info.java
  11. 11 17
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/injector/AbstractMethod.java
  12. 4 0
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/mapper/package-info.java
  13. 2 1
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/metadata/Column.java
  14. 0 303
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/metadata/GlobalConfiguration.java
  15. 23 23
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/metadata/TableFieldInfo.java
  16. 2 1
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/metadata/TableInfo.java
  17. 4 0
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/metadata/package-info.java
  18. 4 5
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/pagination/PageHelper.java
  19. 4 0
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/pagination/dialect/package-info.java
  20. 4 0
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/pagination/package-info.java
  21. 18 48
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/GlobalConfigUtils.java
  22. 55 47
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/TableInfoHelper.java
  23. 4 0
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/package-info.java
  24. 4 0
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/sql/package-info.java
  25. 2 2
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/spring/MybatisMapperRefresh.java
  26. 3 3
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/spring/MybatisSqlSessionFactoryBean.java
  27. 6 6
      mybatis-plus-extension/src/test/java/com/baomidou/mybatisplus/extension/test/CrudTest.java
  28. 4 5
      mybatis-plus-extension/src/test/java/com/baomidou/mybatisplus/extension/test/h2/config/MybatisConfigMetaObjOptLockConfig.java
  29. 4 5
      mybatis-plus-extension/src/test/java/com/baomidou/mybatisplus/extension/test/h2/config/MybatisPlusConfig.java
  30. 4 4
      mybatis-plus-extension/src/test/java/com/baomidou/mybatisplus/extension/test/h2/config/MybatisPlusConfigMapUnderline2Camel.java
  31. 4 4
      mybatis-plus-extension/src/test/java/com/baomidou/mybatisplus/extension/test/h2/config/MybatisPlusLoginDeleteConfig.java
  32. 4 5
      mybatis-plus-extension/src/test/java/com/baomidou/mybatisplus/extension/test/h2/config/MybatisPlusMetaObjConfig.java
  33. 4 4
      mybatis-plus-extension/src/test/java/com/baomidou/mybatisplus/extension/test/h2/config/MybatisPlusNoOptLockConfig.java
  34. 6 6
      mybatis-plus-extension/src/test/java/com/baomidou/mybatisplus/extension/test/h2/config/MybatisPlusSequenceConfig.java
  35. 3 3
      mybatis-plus-extension/src/test/java/com/baomidou/mybatisplus/extension/test/mysql/LogicDeleteTest.java
  36. 3 7
      mybatis-plus-extension/src/test/java/com/baomidou/mybatisplus/extension/test/mysql/UserMapperTest.java
  37. 2 2
      mybatis-plus-extension/src/test/java/com/baomidou/mybatisplus/extension/test/oracle/TestSequserMapperTest.java
  38. 2 2
      mybatis-plus-extension/src/test/java/com/baomidou/mybatisplus/extension/test/oracle/TestUserMapperTest.java
  39. 4 4
      mybatis-plus-extension/src/test/java/com/baomidou/mybatisplus/extension/test/oracle/config/OracleMybatisPlusConfig.java
  40. 1 1
      mybatis-plus-extension/src/test/resources/h2/spring-test-h2-mvc-camel.xml

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

@@ -24,7 +24,7 @@ import org.apache.ibatis.executor.ErrorContext;
 import org.apache.ibatis.session.SqlSessionFactory;
 import org.apache.ibatis.session.SqlSessionFactory;
 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
 
 
-import com.baomidou.mybatisplus.core.metadata.GlobalConfiguration;
+import com.baomidou.mybatisplus.core.config.GlobalConfig;
 import com.baomidou.mybatisplus.core.toolkit.GlobalConfigUtils;
 import com.baomidou.mybatisplus.core.toolkit.GlobalConfigUtils;
 import com.baomidou.mybatisplus.core.toolkit.IOUtils;
 import com.baomidou.mybatisplus.core.toolkit.IOUtils;
 
 
@@ -38,7 +38,7 @@ import com.baomidou.mybatisplus.core.toolkit.IOUtils;
  */
  */
 public class MybatisSessionFactoryBuilder extends SqlSessionFactoryBuilder {
 public class MybatisSessionFactoryBuilder extends SqlSessionFactoryBuilder {
 
 
-    private GlobalConfiguration globalConfig = GlobalConfigUtils.defaults();
+    private GlobalConfig globalConfig = GlobalConfigUtils.defaults();
 
 
     @Override
     @Override
     public SqlSessionFactory build(Reader reader, String environment, Properties properties) {
     public SqlSessionFactory build(Reader reader, String environment, Properties properties) {
@@ -69,7 +69,7 @@ public class MybatisSessionFactoryBuilder extends SqlSessionFactoryBuilder {
     }
     }
 
 
     // TODO 注入全局配置
     // TODO 注入全局配置
-    public void setGlobalConfig(GlobalConfiguration globalConfig) {
+    public void setGlobalConfig(GlobalConfig globalConfig) {
         this.globalConfig = globalConfig;
         this.globalConfig = globalConfig;
     }
     }
 
 

+ 4 - 0
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/assist/package-info.java

@@ -0,0 +1,4 @@
+/**
+ * 增强辅助相关
+ */
+package com.baomidou.mybatisplus.core.assist;

+ 147 - 0
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/config/DbConfig.java

@@ -0,0 +1,147 @@
+package com.baomidou.mybatisplus.core.config;
+
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.core.enums.IDBType;
+import com.baomidou.mybatisplus.core.handlers.SqlReservedWordsHandler;
+import com.baomidou.mybatisplus.core.incrementer.IKeyGenerator;
+
+/**
+ * 数据库相关配置
+ */
+public class DbConfig {
+
+    /**
+     * 数据库类型
+     */
+    private IDBType dbType;
+    /**
+     * 主键类型(默认 ID_WORKER)
+     */
+    private IdType idType = IdType.ID_WORKER;
+    /**
+     * 表名前缀
+     */
+    private String tablePrefix;
+    /**
+     * 表名、是否使用下划线命名(默认 true:默认数据库表下划线命名)
+     */
+    private boolean tableUnderline = true;
+    /**
+     * 字段名、是否使用下划线命名(默认 true:默认数据库字段下划线命名)
+     */
+    private boolean columnUnderline = true;
+    /**
+     * 大写命名
+     */
+    private boolean capitalMode = false;
+    /**
+     * 表关键词 key 生成器
+     */
+    private IKeyGenerator keyGenerator;
+    /**
+     * 逻辑删除全局值(默认 0、否)
+     */
+    private String logicDeleteValue = "0";
+    /**
+     * 逻辑未删除全局值(默认 1、是)
+     */
+    private String logicNotDeleteValue = "1";
+    /**
+     * 字段验证策略
+     */
+    private FieldStrategy fieldStrategy = FieldStrategy.NOT_NULL;
+    /**
+     * Sql 保留字处理器
+     */
+    private SqlReservedWordsHandler reservedWordsHandler = SqlReservedWordsHandler.getInstance();
+
+
+    public IDBType getDbType() {
+        return dbType;
+    }
+
+    public void setDbType(IDBType dbType) {
+        this.dbType = dbType;
+    }
+
+    public IdType getIdType() {
+        return idType;
+    }
+
+    public void setIdType(int idType) {
+        this.idType = IdType.getIdType(idType);
+    }
+
+    public String getTablePrefix() {
+        return tablePrefix;
+    }
+
+    public void setTablePrefix(String tablePrefix) {
+        this.tablePrefix = tablePrefix;
+    }
+
+    public boolean isTableUnderline() {
+        return tableUnderline;
+    }
+
+    public void setTableUnderline(boolean tableUnderline) {
+        this.tableUnderline = tableUnderline;
+    }
+
+    public boolean isColumnUnderline() {
+        return columnUnderline;
+    }
+
+    public void setColumnUnderline(boolean columnUnderline) {
+        this.columnUnderline = columnUnderline;
+    }
+
+    public boolean isCapitalMode() {
+        return capitalMode;
+    }
+
+    public void setCapitalMode(boolean capitalMode) {
+        this.capitalMode = capitalMode;
+    }
+
+    public IKeyGenerator getKeyGenerator() {
+        return keyGenerator;
+    }
+
+    public void setKeyGenerator(IKeyGenerator keyGenerator) {
+        this.keyGenerator = keyGenerator;
+    }
+
+    public String getLogicDeleteValue() {
+        return logicDeleteValue;
+    }
+
+    public void setLogicDeleteValue(String logicDeleteValue) {
+        this.logicDeleteValue = logicDeleteValue;
+    }
+
+    public String getLogicNotDeleteValue() {
+        return logicNotDeleteValue;
+    }
+
+    public void setLogicNotDeleteValue(String logicNotDeleteValue) {
+        this.logicNotDeleteValue = logicNotDeleteValue;
+    }
+
+    public FieldStrategy getFieldStrategy() {
+        return fieldStrategy;
+    }
+
+    public void setFieldStrategy(int fieldStrategy) {
+        this.fieldStrategy = FieldStrategy.getFieldStrategy(fieldStrategy);
+    }
+
+    public SqlReservedWordsHandler getReservedWordsHandler() {
+        return reservedWordsHandler;
+    }
+
+    public void setReservedWordsHandler(SqlReservedWordsHandler reservedWordsHandler) {
+        this.reservedWordsHandler = reservedWordsHandler;
+    }
+}

+ 4 - 0
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/config/package-info.java

@@ -0,0 +1,4 @@
+/**
+ * 全局默认配置
+ */
+package com.baomidou.mybatisplus.core.config;

+ 4 - 0
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/enums/package-info.java

@@ -0,0 +1,4 @@
+/**
+ * 枚举相关
+ */
+package com.baomidou.mybatisplus.core.enums;

+ 4 - 0
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/exceptions/package-info.java

@@ -0,0 +1,4 @@
+/**
+ * 异常
+ */
+package com.baomidou.mybatisplus.core.exceptions;

+ 1 - 0
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/handlers/MetaObjectHandler.java

@@ -114,6 +114,7 @@ public abstract class MetaObjectHandler {
 
 
     public static MetaObjectHandler getInstance() {
     public static MetaObjectHandler getInstance() {
         return new MetaObjectHandler() {
         return new MetaObjectHandler() {
+
             @Override
             @Override
             public void insertFill(MetaObject metaObject) {
             public void insertFill(MetaObject metaObject) {
                 //default do nothing
                 //default do nothing

+ 15 - 16
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/handlers/SqlReservedWordsHandler.java

@@ -5,7 +5,9 @@ import java.util.Collections;
 import java.util.HashSet;
 import java.util.HashSet;
 import java.util.Set;
 import java.util.Set;
 
 
-import com.baomidou.mybatisplus.core.metadata.GlobalConfiguration;
+import com.baomidou.mybatisplus.core.config.DbConfig;
+import com.baomidou.mybatisplus.core.config.GlobalConfig;
+import com.baomidou.mybatisplus.core.enums.IDBType;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -130,37 +132,34 @@ public abstract class SqlReservedWordsHandler {
         Collections.addAll(RESERVED_WORDS, words);
         Collections.addAll(RESERVED_WORDS, words);
     }
     }
 
 
-    //TODO: 3.0 这里考虑实现类从GlobalConfiguration获取,所以从GlobalConfiguration中配置,不需要参数调用
-    public abstract String convert(GlobalConfiguration globalConfig, String column);
-
-    public abstract String convertQuote(GlobalConfiguration globalConfig, String column);
+    public abstract String convert(IDBType dbType, String column);
 
 
     public boolean addAll(Collection<String> reservedWords) {
     public boolean addAll(Collection<String> reservedWords) {
         return RESERVED_WORDS.addAll(reservedWords);
         return RESERVED_WORDS.addAll(reservedWords);
     }
     }
 
 
     /**
     /**
+     * <p>
      * 判断关键字中是否包含该字段
      * 判断关键字中是否包含该字段
+     * </p>
      *
      *
-     * @param word
+     * @param column 字段
      * @return
      * @return
      */
      */
-    protected boolean containsWord(String word) {
-        return null != word && RESERVED_WORDS.contains(word.toUpperCase());
+    protected boolean contains(String column) {
+        return null != column && RESERVED_WORDS.contains(column.toUpperCase());
     }
     }
 
 
-    //TODO: 3.0
-    //可以考虑一个内部类是实现默认的convert, 通过getInstance()方法创建内部实现
+    /**
+     * 内部默认实现
+     */
     public static SqlReservedWordsHandler getInstance() {
     public static SqlReservedWordsHandler getInstance() {
         return new SqlReservedWordsHandler() {
         return new SqlReservedWordsHandler() {
-            @Override
-            public String convert(GlobalConfiguration globalConfig, String column) {
-                return column;
-            }
 
 
             @Override
             @Override
-            public String convertQuote(GlobalConfiguration globalConfig, String column) {
-                return null;
+            public String convert(IDBType dbType, String column) {
+                // default do nothing
+                return column;
             }
             }
         };
         };
     }
     }

+ 4 - 0
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/handlers/package-info.java

@@ -0,0 +1,4 @@
+/**
+ * 处理器
+ */
+package com.baomidou.mybatisplus.core.handlers;

+ 4 - 0
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/incrementer/package-info.java

@@ -0,0 +1,4 @@
+/**
+ * key 生成器
+ */
+package com.baomidou.mybatisplus.core.incrementer;

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

@@ -34,7 +34,7 @@ import org.apache.ibatis.session.Configuration;
 
 
 import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.FieldStrategy;
 import com.baomidou.mybatisplus.annotation.FieldStrategy;
-import com.baomidou.mybatisplus.core.metadata.GlobalConfiguration;
+import com.baomidou.mybatisplus.core.config.GlobalConfig;
 import com.baomidou.mybatisplus.core.metadata.TableFieldInfo;
 import com.baomidou.mybatisplus.core.metadata.TableFieldInfo;
 import com.baomidou.mybatisplus.core.metadata.TableInfo;
 import com.baomidou.mybatisplus.core.metadata.TableInfo;
 import com.baomidou.mybatisplus.core.toolkit.ArrayUtils;
 import com.baomidou.mybatisplus.core.toolkit.ArrayUtils;
@@ -168,15 +168,11 @@ public abstract class AbstractMethod {
      * 获取需要转义的SQL字段
      * 获取需要转义的SQL字段
      * </p>
      * </p>
      *
      *
-     * @param convertStr
+     * @param column 字段
      * @return
      * @return
      */
      */
-    protected String sqlWordConvert(String convertStr) {
-//        GlobalConfiguration globalConfig = GlobalConfigUtils.getGlobalConfig(configuration);
-//        return SqlReservedWords.convert(globalConfig, convertStr);
-        //TODO: 3.0
-        // 定义一个interface, 通过GlobalConfiguration获取
-        return convertStr;
+    protected String sqlWordConvert(String column) {
+        return this.getGlobalConfig().getDbConfig().getReservedWordsHandler().convert(this.getGlobalConfig(), column);
     }
     }
 
 
     /**
     /**
@@ -335,9 +331,7 @@ public abstract class AbstractMethod {
         where.append("\n<where>");
         where.append("\n<where>");
         where.append("\n<foreach collection=\"cm.keys\" item=\"k\" separator=\"AND\">");
         where.append("\n<foreach collection=\"cm.keys\" item=\"k\" separator=\"AND\">");
         where.append("\n<if test=\"cm[k] != null\">");
         where.append("\n<if test=\"cm[k] != null\">");
-        //TODO: 3.0
-        where.append("\n").append(this.getGlobalConfig().getReservedWordsHandler().convert(getGlobalConfig(), "${k}")).append(" = #{cm[${k}]}");
-//        where.append("\n").append(SqlReservedWords.convert(getGlobalConfig(), "${k}")).append(" = #{cm[${k}]}");
+        where.append("\n").append(this.sqlWordConvert("${k}")).append(" = #{cm[${k}]}");
         where.append("\n</if>");
         where.append("\n</if>");
         where.append("\n</foreach>");
         where.append("\n</foreach>");
         where.append("\n</where>");
         where.append("\n</where>");
@@ -364,7 +358,7 @@ public abstract class AbstractMethod {
                 return "";
                 return "";
             }
             }
             // 查询策略,使用全局策略
             // 查询策略,使用全局策略
-            fieldStrategy = this.getGlobalConfig().getFieldStrategy();
+            fieldStrategy = this.getGlobalConfig().getDbConfig().getFieldStrategy();
         }
         }
 
 
         // 关闭标签
         // 关闭标签
@@ -456,7 +450,7 @@ public abstract class AbstractMethod {
      * 查询
      * 查询
      */
      */
     protected MappedStatement addSelectMappedStatement(Class<?> mapperClass, String id, SqlSource sqlSource, Class<?> resultType,
     protected MappedStatement addSelectMappedStatement(Class<?> mapperClass, String id, SqlSource sqlSource, Class<?> resultType,
-                                                    TableInfo table) {
+                                                       TableInfo table) {
         if (null != table) {
         if (null != table) {
             String resultMap = table.getResultMap();
             String resultMap = table.getResultMap();
             if (null != resultMap) {
             if (null != resultMap) {
@@ -476,7 +470,7 @@ public abstract class AbstractMethod {
      * 插入
      * 插入
      */
      */
     protected MappedStatement addInsertMappedStatement(Class<?> mapperClass, Class<?> modelClass, String id, SqlSource sqlSource,
     protected MappedStatement addInsertMappedStatement(Class<?> mapperClass, Class<?> modelClass, String id, SqlSource sqlSource,
-                                                    KeyGenerator keyGenerator, String keyProperty, String keyColumn) {
+                                                       KeyGenerator keyGenerator, String keyProperty, String keyColumn) {
         return this.addMappedStatement(mapperClass, id, sqlSource, SqlCommandType.INSERT, modelClass, null, Integer.class,
         return this.addMappedStatement(mapperClass, id, sqlSource, SqlCommandType.INSERT, modelClass, null, Integer.class,
             keyGenerator, keyProperty, keyColumn);
             keyGenerator, keyProperty, keyColumn);
     }
     }
@@ -504,8 +498,8 @@ public abstract class AbstractMethod {
      * 添加 MappedStatement 到 Mybatis 容器
      * 添加 MappedStatement 到 Mybatis 容器
      */
      */
     protected MappedStatement addMappedStatement(Class<?> mapperClass, String id, SqlSource sqlSource,
     protected MappedStatement addMappedStatement(Class<?> mapperClass, String id, SqlSource sqlSource,
-                                              SqlCommandType sqlCommandType, Class<?> parameterClass, String resultMap, Class<?> resultType,
-                                              KeyGenerator keyGenerator, String keyProperty, String keyColumn) {
+                                                 SqlCommandType sqlCommandType, Class<?> parameterClass, String resultMap, Class<?> resultType,
+                                                 KeyGenerator keyGenerator, String keyProperty, String keyColumn) {
         String statementName = mapperClass.getName() + "." + id;
         String statementName = mapperClass.getName() + "." + id;
         if (hasMappedStatement(statementName)) {
         if (hasMappedStatement(statementName)) {
             System.err.println("{" + statementName + "} Has been loaded by XML or SqlProvider, ignoring the injection of the SQL.");
             System.err.println("{" + statementName + "} Has been loaded by XML or SqlProvider, ignoring the injection of the SQL.");
@@ -527,7 +521,7 @@ public abstract class AbstractMethod {
      * 全局配置
      * 全局配置
      * </p>
      * </p>
      */
      */
-    protected GlobalConfiguration getGlobalConfig() {
+    protected GlobalConfig getGlobalConfig() {
         return GlobalConfigUtils.getGlobalConfig(configuration);
         return GlobalConfigUtils.getGlobalConfig(configuration);
     }
     }
 
 

+ 4 - 0
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/mapper/package-info.java

@@ -0,0 +1,4 @@
+/**
+ * 注入 mapper 基类
+ */
+package com.baomidou.mybatisplus.core.mapper;

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

@@ -18,6 +18,7 @@ package com.baomidou.mybatisplus.core.metadata;
 import java.io.Serializable;
 import java.io.Serializable;
 
 
 import com.baomidou.mybatisplus.core.assist.ISqlRunner;
 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.GlobalConfigUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 
 
@@ -64,7 +65,7 @@ public class Column implements Serializable {
         }
         }
         String quote = null;
         String quote = null;
         if (isEscape() && ISqlRunner.FACTORY != null) {
         if (isEscape() && ISqlRunner.FACTORY != null) {
-            GlobalConfiguration globalConfig = GlobalConfigUtils.getGlobalConfig(ISqlRunner.FACTORY.getConfiguration());
+            GlobalConfig globalConfig = GlobalConfigUtils.getGlobalConfig(ISqlRunner.FACTORY.getConfiguration());
             quote = globalConfig.getIdentifierQuote() == null ? globalConfig.getDbType().getQuote() : globalConfig.getIdentifierQuote();
             quote = globalConfig.getIdentifierQuote() == null ? globalConfig.getDbType().getQuote() : globalConfig.getIdentifierQuote();
         }
         }
         return AS + (StringUtils.isNotEmpty(quote) ? String.format(quote, as) : as);
         return AS + (StringUtils.isNotEmpty(quote) ? String.format(quote, as) : as);

+ 0 - 303
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/metadata/GlobalConfiguration.java

@@ -1,303 +0,0 @@
-/*
- * Copyright (c) 2011-2014, hubin (jobob@qq.com).
- * <p>
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package com.baomidou.mybatisplus.core.metadata;
-
-import java.io.Serializable;
-import java.util.Set;
-import java.util.concurrent.ConcurrentSkipListSet;
-
-import org.apache.ibatis.session.SqlSession;
-import org.apache.ibatis.session.SqlSessionFactory;
-
-import com.baomidou.mybatisplus.annotation.FieldStrategy;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.core.enums.IDBType;
-import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
-import com.baomidou.mybatisplus.core.handlers.SqlReservedWordsHandler;
-import com.baomidou.mybatisplus.core.incrementer.IKeyGenerator;
-import com.baomidou.mybatisplus.core.injector.ISqlInjector;
-import com.baomidou.mybatisplus.core.toolkit.GlobalConfigUtils;
-import com.baomidou.mybatisplus.core.toolkit.StringUtils;
-
-/**
- * <p>
- * Mybatis全局缓存
- * </p>
- *
- * @author Caratacus
- * @since 2016-12-06
- */
-public class GlobalConfiguration implements Serializable {
-
-    /**
-     * 逻辑删除全局值
-     */
-    private String logicDeleteValue = null;
-    /**
-     * 逻辑未删除全局值
-     */
-    private String logicNotDeleteValue = null;
-    /**
-     * 数据库类型
-     */
-    private IDBType dbType;
-    /**
-     * 主键类型(默认 ID_WORKER)
-     */
-    private IdType idType = IdType.ID_WORKER;
-    /**
-     * 表名、字段名、是否使用下划线命名(默认 true:默认数据库字段下划线命名)
-     */
-    private boolean dbColumnUnderline = true;
-    /**
-     * SQL注入器
-     */
-    private ISqlInjector sqlInjector;
-    /**
-     * 表关键词 key 生成器
-     */
-    private IKeyGenerator keyGenerator;
-    /**
-     * 元对象字段填充控制器
-     */
-    private MetaObjectHandler metaObjectHandler = MetaObjectHandler.getInstance();
-    /**
-     * //TODO: 3.0
-     */
-    private SqlReservedWordsHandler reservedWordsHandler;
-    /**
-     * 字段验证策略
-     */
-    private FieldStrategy fieldStrategy = FieldStrategy.NOT_NULL;
-    /**
-     * 是否刷新mapper
-     */
-    private boolean isRefresh = false;
-    /**
-     * 是否大写命名
-     */
-    private boolean isCapitalMode = false;
-    /**
-     * 标识符
-     */
-    private String identifierQuote;
-    /**
-     * 缓存当前Configuration的SqlSessionFactory
-     */
-    private SqlSessionFactory sqlSessionFactory;
-    /**
-     * 缓存已注入CRUD的Mapper信息
-     */
-    private Set<String> mapperRegistryCache = new ConcurrentSkipListSet<>();
-    /**
-     * 单例重用SqlSession
-     */
-    private SqlSession sqlSession;
-    /**
-     * 缓存 Sql 解析初始化
-     */
-    private boolean sqlParserCache = false;
-
-
-    public GlobalConfiguration() {
-        // 构造方法
-    }
-
-
-    public GlobalConfiguration(ISqlInjector sqlInjector) {
-        this.sqlInjector = sqlInjector;
-    }
-
-
-    public IKeyGenerator getKeyGenerator() {
-        return keyGenerator;
-    }
-
-    public void setKeyGenerator(IKeyGenerator keyGenerator) {
-        this.keyGenerator = keyGenerator;
-    }
-
-
-    public String getLogicDeleteValue() {
-        return logicDeleteValue;
-    }
-
-    public void setLogicDeleteValue(String logicDeleteValue) {
-        this.logicDeleteValue = logicDeleteValue;
-    }
-
-    public String getLogicNotDeleteValue() {
-        return logicNotDeleteValue;
-    }
-
-    public void setLogicNotDeleteValue(String logicNotDeleteValue) {
-        this.logicNotDeleteValue = logicNotDeleteValue;
-    }
-
-    public IDBType getDbType() {
-        return dbType;
-    }
-
-//    /**
-//     * 根据jdbcUrl设置数据库类型
-//     *
-//     * @param jdbcUrl
-//     */
-    //TODO: 3.0 通过其他途径设置dbType
-//    public void setDbTypeOfJdbcUrl(String jdbcUrl) {
-//        this.dbType = JdbcUtils.getDbType(jdbcUrl);
-//    }
-
-    //TODO 3.0 通过其他途径设置dbType
-    public void setDbType(IDBType dbType) {
-        this.dbType = dbType;
-    }
-
-    public IdType getIdType() {
-        return idType;
-    }
-
-    public void setIdType(int idType) {
-        this.idType = IdType.getIdType(idType);
-    }
-
-    public boolean isDbColumnUnderline() {
-        return dbColumnUnderline;
-    }
-
-    public void setDbColumnUnderline(boolean dbColumnUnderline) {
-        this.dbColumnUnderline = dbColumnUnderline;
-    }
-
-    public ISqlInjector getSqlInjector() {
-        return sqlInjector;
-    }
-
-    public void setSqlInjector(ISqlInjector sqlInjector) {
-        this.sqlInjector = sqlInjector;
-    }
-
-    public MetaObjectHandler getMetaObjectHandler() {
-        return metaObjectHandler;
-    }
-
-    public void setMetaObjectHandler(MetaObjectHandler metaObjectHandler) {
-        this.metaObjectHandler = metaObjectHandler;
-    }
-
-    public SqlReservedWordsHandler getReservedWordsHandler() {
-        return reservedWordsHandler;
-    }
-
-    public GlobalConfiguration setReservedWordsHandler(SqlReservedWordsHandler reservedWordsHandler) {
-        this.reservedWordsHandler = reservedWordsHandler;
-        return this;
-    }
-
-    public FieldStrategy getFieldStrategy() {
-        return fieldStrategy;
-    }
-
-    public void setFieldStrategy(int fieldStrategy) {
-        this.fieldStrategy = FieldStrategy.getFieldStrategy(fieldStrategy);
-    }
-
-    public boolean isRefresh() {
-        return isRefresh;
-    }
-
-    public void setRefresh(boolean refresh) {
-        this.isRefresh = refresh;
-    }
-
-    public Set<String> getMapperRegistryCache() {
-        return mapperRegistryCache;
-    }
-
-    public void setMapperRegistryCache(Set<String> mapperRegistryCache) {
-        this.mapperRegistryCache = mapperRegistryCache;
-    }
-
-    public SqlSessionFactory getSqlSessionFactory() {
-        return sqlSessionFactory;
-    }
-
-    public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) {
-        this.sqlSessionFactory = sqlSessionFactory;
-//        //TODO: 3.0 在extension中初始化这个对象
-//        this.sqlSession = new MybatisSqlSessionTemplate(sqlSessionFactory);
-    }
-
-    public GlobalConfiguration setSqlSession(SqlSession sqlSession) {
-        this.sqlSession = sqlSession;
-        return this;
-    }
-
-    public boolean isCapitalMode() {
-        return isCapitalMode;
-    }
-
-    public void setCapitalMode(boolean isCapitalMode) {
-        this.isCapitalMode = isCapitalMode;
-    }
-
-    public String getIdentifierQuote() {
-        if (null == identifierQuote) {
-            return dbType.getQuote();
-        }
-        return identifierQuote;
-    }
-
-    public void setIdentifierQuote(String identifierQuote) {
-        this.identifierQuote = identifierQuote;
-    }
-
-    public void setSqlKeywords(String sqlKeywords) {
-        if (StringUtils.isNotEmpty(sqlKeywords)) {
-            if (reservedWordsHandler == null) {
-                reservedWordsHandler = SqlReservedWordsHandler.getInstance();
-            }
-            reservedWordsHandler.addAll(StringUtils.splitWorker(sqlKeywords.toUpperCase(), ",", -1, false));
-        }
-    }
-
-    public SqlSession getSqlSession() {
-        return sqlSession;
-    }
-
-    public boolean isSqlParserCache() {
-        return sqlParserCache;
-    }
-
-    public void setSqlParserCache(boolean sqlParserCache) {
-        this.sqlParserCache = sqlParserCache;
-    }
-
-    /**
-     * <p>
-     * 标记全局设置 (统一所有入口)
-     * </p>
-     *
-     * @param sqlSessionFactory
-     * @return
-     */
-    public SqlSessionFactory signGlobalConfig(SqlSessionFactory sqlSessionFactory) {
-        if (null != sqlSessionFactory) {
-            GlobalConfigUtils.setGlobalConfig(sqlSessionFactory.getConfiguration(), this);
-        }
-        return sqlSessionFactory;
-    }
-}

+ 23 - 23
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/metadata/TableFieldInfo.java

@@ -22,6 +22,7 @@ import com.baomidou.mybatisplus.annotation.FieldStrategy;
 import com.baomidou.mybatisplus.annotation.SqlCondition;
 import com.baomidou.mybatisplus.annotation.SqlCondition;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.core.config.DbConfig;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 
 
 /**
 /**
@@ -96,7 +97,7 @@ public class TableFieldInfo {
      * 存在 TableField 注解构造函数
      * 存在 TableField 注解构造函数
      * </p>
      * </p>
      */
      */
-    public TableFieldInfo(GlobalConfiguration globalConfig, TableInfo tableInfo, String column,
+    public TableFieldInfo(DbConfig dbConfig, TableInfo tableInfo, String column,
                           String el, Field field, TableField tableField) {
                           String el, Field field, TableField tableField) {
         this.property = field.getName();
         this.property = field.getName();
         this.propertyType = field.getType();
         this.propertyType = field.getType();
@@ -106,12 +107,12 @@ public class TableFieldInfo {
          * 设置 related 为 true
          * 设置 related 为 true
          */
          */
         if (StringUtils.isEmpty(tableField.value())
         if (StringUtils.isEmpty(tableField.value())
-            && globalConfig.isDbColumnUnderline()) {
+            && dbConfig.isColumnUnderline()) {
             /* 开启字段下划线申明 */
             /* 开启字段下划线申明 */
             this.related = true;
             this.related = true;
-            this.setColumn(globalConfig, StringUtils.camelToUnderline(column));
+            this.setColumn(dbConfig, StringUtils.camelToUnderline(column));
         } else {
         } else {
-            this.setColumn(globalConfig, column);
+            this.setColumn(dbConfig, column);
             if (!column.equals(this.property)) {
             if (!column.equals(this.property)) {
                 this.related = true;
                 this.related = true;
             }
             }
@@ -120,12 +121,12 @@ public class TableFieldInfo {
         /*
         /*
          * 优先使用单个字段注解,否则使用全局配置
          * 优先使用单个字段注解,否则使用全局配置
          */
          */
-        if (globalConfig.getFieldStrategy() != tableField.strategy()) {
+        if (dbConfig.getFieldStrategy() != tableField.strategy()) {
             this.fieldStrategy = tableField.strategy();
             this.fieldStrategy = tableField.strategy();
         } else {
         } else {
-            this.fieldStrategy = globalConfig.getFieldStrategy();
+            this.fieldStrategy = dbConfig.getFieldStrategy();
         }
         }
-        tableInfo.setLogicDelete(this.initLogicDelete(globalConfig, field));
+        tableInfo.setLogicDelete(this.initLogicDelete(dbConfig, field));
         this.update = tableField.update();
         this.update = tableField.update();
         this.condition = tableField.condition();
         this.condition = tableField.condition();
         /*
         /*
@@ -134,19 +135,19 @@ public class TableFieldInfo {
         this.fieldFill = tableField.fill();
         this.fieldFill = tableField.fill();
     }
     }
 
 
-    public TableFieldInfo(GlobalConfiguration globalConfig, TableInfo tableInfo, Field field) {
-        if (globalConfig.isDbColumnUnderline()) {
+    public TableFieldInfo(DbConfig dbConfig, TableInfo tableInfo, Field field) {
+        if (dbConfig.isColumnUnderline()) {
             /* 开启字段下划线申明 */
             /* 开启字段下划线申明 */
             this.related = true;
             this.related = true;
-            this.setColumn(globalConfig, StringUtils.camelToUnderline(field.getName()));
+            this.setColumn(dbConfig, StringUtils.camelToUnderline(field.getName()));
         } else {
         } else {
-            this.setColumn(globalConfig, field.getName());
+            this.setColumn(dbConfig, field.getName());
         }
         }
         this.property = field.getName();
         this.property = field.getName();
         this.el = field.getName();
         this.el = field.getName();
-        this.fieldStrategy = globalConfig.getFieldStrategy();
+        this.fieldStrategy = dbConfig.getFieldStrategy();
         this.propertyType = field.getType();
         this.propertyType = field.getType();
-        tableInfo.setLogicDelete(this.initLogicDelete(globalConfig, field));
+        tableInfo.setLogicDelete(this.initLogicDelete(dbConfig, field));
     }
     }
 
 
     /**
     /**
@@ -154,11 +155,11 @@ public class TableFieldInfo {
      * 逻辑删除初始化
      * 逻辑删除初始化
      * </p>
      * </p>
      *
      *
-     * @param globalConfig 全局配置
-     * @param field        字段属性对象
+     * @param dbConfig 数据库全局配置
+     * @param field    字段属性对象
      */
      */
-    private boolean initLogicDelete(GlobalConfiguration globalConfig, Field field) {
-        if (null == globalConfig.getLogicDeleteValue()) {
+    private boolean initLogicDelete(DbConfig dbConfig, Field field) {
+        if (null == dbConfig.getLogicDeleteValue()) {
             // 未设置逻辑删除值不进行
             // 未设置逻辑删除值不进行
             return false;
             return false;
         }
         }
@@ -168,12 +169,12 @@ public class TableFieldInfo {
             if (StringUtils.isNotEmpty(tableLogic.value())) {
             if (StringUtils.isNotEmpty(tableLogic.value())) {
                 this.logicNotDeleteValue = tableLogic.value();
                 this.logicNotDeleteValue = tableLogic.value();
             } else {
             } else {
-                this.logicNotDeleteValue = globalConfig.getLogicNotDeleteValue();
+                this.logicNotDeleteValue = dbConfig.getLogicNotDeleteValue();
             }
             }
             if (StringUtils.isNotEmpty(tableLogic.delval())) {
             if (StringUtils.isNotEmpty(tableLogic.delval())) {
                 this.logicDeleteValue = tableLogic.delval();
                 this.logicDeleteValue = tableLogic.delval();
             } else {
             } else {
-                this.logicDeleteValue = globalConfig.getLogicDeleteValue();
+                this.logicDeleteValue = dbConfig.getLogicDeleteValue();
             }
             }
             return true;
             return true;
         }
         }
@@ -192,10 +193,9 @@ public class TableFieldInfo {
         return column;
         return column;
     }
     }
 
 
-    public void setColumn(GlobalConfiguration globalConfig, String column) {
-        //TODO: 3.0 updated
-        String temp = globalConfig.getReservedWordsHandler().convert(globalConfig, column);
-        if (globalConfig.isCapitalMode() && !isRelated()) {
+    public void setColumn(DbConfig dbConfig, String column) {
+        String temp = dbConfig.getReservedWordsHandler().convert(dbConfig.getDbType(), column);
+        if (dbConfig.isCapitalMode() && !isRelated()) {
             // 全局大写,非注解指定
             // 全局大写,非注解指定
             temp = temp.toUpperCase();
             temp = temp.toUpperCase();
         }
         }

+ 2 - 1
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/metadata/TableInfo.java

@@ -21,6 +21,7 @@ import org.apache.ibatis.session.Configuration;
 
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.KeySequence;
+import com.baomidou.mybatisplus.core.config.GlobalConfig;
 import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
 import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
 
 
 /**
 /**
@@ -165,7 +166,7 @@ public class TableInfo {
         return fieldList;
         return fieldList;
     }
     }
 
 
-    public void setFieldList(GlobalConfiguration globalConfig, List<TableFieldInfo> fieldList) {
+    public void setFieldList(GlobalConfig globalConfig, List<TableFieldInfo> fieldList) {
         this.fieldList = fieldList;
         this.fieldList = fieldList;
         /*
         /*
          * 启动逻辑删除注入、判断该表是否启动
          * 启动逻辑删除注入、判断该表是否启动

+ 4 - 0
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/metadata/package-info.java

@@ -0,0 +1,4 @@
+/**
+ * 反射表结构元数据
+ */
+package com.baomidou.mybatisplus.core.metadata;

+ 4 - 5
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/pagination/PageHelper.java

@@ -39,12 +39,11 @@ public class PageHelper {
      * 获取总条数
      * 获取总条数
      * </p>
      * </p>
      */
      */
-    public static int getTotal() {
+    public static long getTotal() {
         if (isPageable()) {
         if (isPageable()) {
             return LOCAL_PAGE.get().getTotal();
             return LOCAL_PAGE.get().getTotal();
-        } else {
-            throw new MybatisPlusException("The current thread does not start paging. Please call before PageHelper.startPage");
         }
         }
+        throw new MybatisPlusException("The current thread does not start paging. Please call before PageHelper.startPage");
     }
     }
 
 
     /**
     /**
@@ -80,8 +79,8 @@ public class PageHelper {
      * 释放资源并获取总条数
      * 释放资源并获取总条数
      * </p>
      * </p>
      */
      */
-    public static int freeTotal() {
-        int total = getTotal();
+    public static long freeTotal() {
+        long total = getTotal();
         // 释放资源
         // 释放资源
         remove();
         remove();
         return total;
         return total;

+ 4 - 0
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/pagination/dialect/package-info.java

@@ -0,0 +1,4 @@
+/**
+ * 数据库方言
+ */
+package com.baomidou.mybatisplus.core.pagination.dialect;

+ 4 - 0
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/pagination/package-info.java

@@ -0,0 +1,4 @@
+/**
+ * 分页相关
+ */
+package com.baomidou.mybatisplus.core.pagination;

+ 18 - 48
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/GlobalConfigUtils.java

@@ -1,27 +1,23 @@
 package com.baomidou.mybatisplus.core.toolkit;
 package com.baomidou.mybatisplus.core.toolkit;
 
 
-import java.sql.Connection;
 import java.util.Map;
 import java.util.Map;
 import java.util.Set;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentHashMap;
 
 
-import javax.sql.DataSource;
-
 import org.apache.ibatis.logging.Log;
 import org.apache.ibatis.logging.Log;
 import org.apache.ibatis.logging.LogFactory;
 import org.apache.ibatis.logging.LogFactory;
 import org.apache.ibatis.session.Configuration;
 import org.apache.ibatis.session.Configuration;
 import org.apache.ibatis.session.SqlSession;
 import org.apache.ibatis.session.SqlSession;
 import org.apache.ibatis.session.SqlSessionFactory;
 import org.apache.ibatis.session.SqlSessionFactory;
 
 
-import com.baomidou.mybatisplus.annotation.FieldStrategy;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.core.config.GlobalConfig;
 import com.baomidou.mybatisplus.core.enums.IDBType;
 import com.baomidou.mybatisplus.core.enums.IDBType;
 import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
 import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
 import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
 import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
 import com.baomidou.mybatisplus.core.incrementer.IKeyGenerator;
 import com.baomidou.mybatisplus.core.incrementer.IKeyGenerator;
 import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector;
 import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector;
 import com.baomidou.mybatisplus.core.injector.ISqlInjector;
 import com.baomidou.mybatisplus.core.injector.ISqlInjector;
-import com.baomidou.mybatisplus.core.metadata.GlobalConfiguration;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -33,16 +29,18 @@ import com.baomidou.mybatisplus.core.metadata.GlobalConfiguration;
  */
  */
 public class GlobalConfigUtils {
 public class GlobalConfigUtils {
 
 
-    // 日志
+    /**
+     * 日志
+     */
     private static final Log logger = LogFactory.getLog(GlobalConfigUtils.class);
     private static final Log logger = LogFactory.getLog(GlobalConfigUtils.class);
     /**
     /**
      * 默认参数
      * 默认参数
      */
      */
-    public static final GlobalConfiguration DEFAULT = defaults();
+    public static final GlobalConfig DEFAULT = defaults();
     /**
     /**
      * 缓存全局信息
      * 缓存全局信息
      */
      */
-    private static final Map<String, GlobalConfiguration> GLOBAL_CONFIG = new ConcurrentHashMap<>();
+    private static final Map<String, GlobalConfig> GLOBAL_CONFIG = new ConcurrentHashMap<>();
 
 
     public GlobalConfigUtils() {
     public GlobalConfigUtils() {
         // 构造方法
         // 构造方法
@@ -58,7 +56,7 @@ public class GlobalConfigUtils {
      */
      */
     public static SqlSessionFactory currentSessionFactory(Class<?> clazz) {
     public static SqlSessionFactory currentSessionFactory(Class<?> clazz) {
         String configMark = TableInfoHelper.getTableInfo(clazz).getConfigMark();
         String configMark = TableInfoHelper.getTableInfo(clazz).getConfigMark();
-        GlobalConfiguration mybatisGlobalConfig = GlobalConfigUtils.getGlobalConfig(configMark);
+        GlobalConfig mybatisGlobalConfig = GlobalConfigUtils.getGlobalConfig(configMark);
         return mybatisGlobalConfig.getSqlSessionFactory();
         return mybatisGlobalConfig.getSqlSessionFactory();
     }
     }
 
 
@@ -69,8 +67,8 @@ public class GlobalConfigUtils {
      *
      *
      * @return
      * @return
      */
      */
-    public static GlobalConfiguration defaults() {
-        return new GlobalConfiguration();
+    public static GlobalConfig defaults() {
+        return new GlobalConfig();
     }
     }
 
 
     /**
     /**
@@ -82,7 +80,7 @@ public class GlobalConfigUtils {
      * @param mybatisGlobalConfig 全局配置
      * @param mybatisGlobalConfig 全局配置
      * @return
      * @return
      */
      */
-    public static void setGlobalConfig(Configuration configuration, GlobalConfiguration mybatisGlobalConfig) {
+    public static void setGlobalConfig(Configuration configuration, GlobalConfig mybatisGlobalConfig) {
         if (configuration == null || mybatisGlobalConfig == null) {
         if (configuration == null || mybatisGlobalConfig == null) {
             throw new MybatisPlusException("Error: Could not setGlobalConfig");
             throw new MybatisPlusException("Error: Could not setGlobalConfig");
         }
         }
@@ -98,7 +96,7 @@ public class GlobalConfigUtils {
      * @param configuration Mybatis 容器配置对象
      * @param configuration Mybatis 容器配置对象
      * @return
      * @return
      */
      */
-    public static GlobalConfiguration getGlobalConfig(Configuration configuration) {
+    public static GlobalConfig getGlobalConfig(Configuration configuration) {
         if (configuration == null) {
         if (configuration == null) {
             throw new MybatisPlusException("Error: You need Initialize MybatisConfiguration !");
             throw new MybatisPlusException("Error: You need Initialize MybatisConfiguration !");
         }
         }
@@ -113,8 +111,8 @@ public class GlobalConfigUtils {
      * @param configMark 配置标记
      * @param configMark 配置标记
      * @return
      * @return
      */
      */
-    public static GlobalConfiguration getGlobalConfig(String configMark) {
-        GlobalConfiguration cache = GLOBAL_CONFIG.get(configMark);
+    public static GlobalConfig getGlobalConfig(String configMark) {
+        GlobalConfig cache = GLOBAL_CONFIG.get(configMark);
         if (cache == null) {
         if (cache == null) {
             // 没有获取全局配置初始全局配置
             // 没有获取全局配置初始全局配置
             logger.debug("DeBug: MyBatis Plus Global configuration Initializing !");
             logger.debug("DeBug: MyBatis Plus Global configuration Initializing !");
@@ -125,24 +123,24 @@ public class GlobalConfigUtils {
     }
     }
 
 
     public static IDBType getDbType(Configuration configuration) {
     public static IDBType getDbType(Configuration configuration) {
-        return getGlobalConfig(configuration).getDbType();
+        return getGlobalConfig(configuration).getDbConfig().getDbType();
     }
     }
 
 
     public static IKeyGenerator getKeyGenerator(Configuration configuration) {
     public static IKeyGenerator getKeyGenerator(Configuration configuration) {
-        return getGlobalConfig(configuration).getKeyGenerator();
+        return getGlobalConfig(configuration).getDbConfig().getKeyGenerator();
     }
     }
 
 
     public static IdType getIdType(Configuration configuration) {
     public static IdType getIdType(Configuration configuration) {
-        return getGlobalConfig(configuration).getIdType();
+        return getGlobalConfig(configuration).getDbConfig().getIdType();
     }
     }
 
 
     public static boolean isDbColumnUnderline(Configuration configuration) {
     public static boolean isDbColumnUnderline(Configuration configuration) {
-        return getGlobalConfig(configuration).isDbColumnUnderline();
+        return getGlobalConfig(configuration).getDbConfig().isColumnUnderline();
     }
     }
 
 
     public static ISqlInjector getSqlInjector(Configuration configuration) {
     public static ISqlInjector getSqlInjector(Configuration configuration) {
         // fix #140
         // fix #140
-        GlobalConfiguration globalConfiguration = getGlobalConfig(configuration);
+        GlobalConfig globalConfiguration = getGlobalConfig(configuration);
         ISqlInjector sqlInjector = globalConfiguration.getSqlInjector();
         ISqlInjector sqlInjector = globalConfiguration.getSqlInjector();
         if (sqlInjector == null) {
         if (sqlInjector == null) {
             sqlInjector = new DefaultSqlInjector();
             sqlInjector = new DefaultSqlInjector();
@@ -155,10 +153,6 @@ public class GlobalConfigUtils {
         return getGlobalConfig(configuration).getMetaObjectHandler();
         return getGlobalConfig(configuration).getMetaObjectHandler();
     }
     }
 
 
-    public static FieldStrategy getFieldStrategy(Configuration configuration) {
-        return getGlobalConfig(configuration).getFieldStrategy();
-    }
-
     public static boolean isRefresh(Configuration configuration) {
     public static boolean isRefresh(Configuration configuration) {
         return getGlobalConfig(configuration).isRefresh();
         return getGlobalConfig(configuration).isRefresh();
     }
     }
@@ -167,31 +161,7 @@ public class GlobalConfigUtils {
         return getGlobalConfig(configuration).getMapperRegistryCache();
         return getGlobalConfig(configuration).getMapperRegistryCache();
     }
     }
 
 
-    public static String getIdentifierQuote(Configuration configuration) {
-        return getGlobalConfig(configuration).getIdentifierQuote();
-    }
-
     public static SqlSession getSqlSession(Configuration configuration) {
     public static SqlSession getSqlSession(Configuration configuration) {
         return getGlobalConfig(configuration).getSqlSession();
         return getGlobalConfig(configuration).getSqlSession();
     }
     }
-
-    /**
-     * <p>
-     * 设置元数据相关属性
-     * </p>
-     *
-     * @param dataSource   数据源
-     * @param globalConfig 全局配置
-     * @deprecated 3.0
-     */
-    @Deprecated
-    public static void setMetaData(DataSource dataSource, GlobalConfiguration globalConfig) {
-        try (Connection connection = dataSource.getConnection()) {
-            // 设置全局关键字
-            globalConfig.setSqlKeywords(connection.getMetaData().getSQLKeywords());
-        } catch (Exception e) {
-            throw new MybatisPlusException("Error: GlobalConfigUtils setMetaData Fail !  Cause:" + e);
-        }
-    }
-
 }
 }

+ 55 - 47
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/TableInfoHelper.java

@@ -42,9 +42,10 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.core.assist.ISqlRunner;
 import com.baomidou.mybatisplus.core.assist.ISqlRunner;
+import com.baomidou.mybatisplus.core.config.DbConfig;
+import com.baomidou.mybatisplus.core.config.GlobalConfig;
 import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
 import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
 import com.baomidou.mybatisplus.core.incrementer.IKeyGenerator;
 import com.baomidou.mybatisplus.core.incrementer.IKeyGenerator;
-import com.baomidou.mybatisplus.core.metadata.GlobalConfiguration;
 import com.baomidou.mybatisplus.core.metadata.TableFieldInfo;
 import com.baomidou.mybatisplus.core.metadata.TableFieldInfo;
 import com.baomidou.mybatisplus.core.metadata.TableInfo;
 import com.baomidou.mybatisplus.core.metadata.TableInfo;
 
 
@@ -108,7 +109,7 @@ public class TableInfoHelper {
             return tableInfo;
             return tableInfo;
         }
         }
         tableInfo = new TableInfo();
         tableInfo = new TableInfo();
-        GlobalConfiguration globalConfig;
+        GlobalConfig globalConfig;
         if (null != builderAssistant) {
         if (null != builderAssistant) {
             tableInfo.setCurrentNamespace(builderAssistant.getCurrentNamespace());
             tableInfo.setCurrentNamespace(builderAssistant.getCurrentNamespace());
             tableInfo.setConfigMark(builderAssistant.getConfiguration());
             tableInfo.setConfigMark(builderAssistant.getConfiguration());
@@ -117,18 +118,26 @@ public class TableInfoHelper {
             // 兼容测试场景
             // 兼容测试场景
             globalConfig = GlobalConfigUtils.DEFAULT;
             globalConfig = GlobalConfigUtils.DEFAULT;
         }
         }
-        /* 表名 */
+
+        /* 数据库全局配置 */
+        DbConfig dbConfig = globalConfig.getDbConfig();
+
+        // 表名
         TableName table = clazz.getAnnotation(TableName.class);
         TableName table = clazz.getAnnotation(TableName.class);
         String tableName = clazz.getSimpleName();
         String tableName = clazz.getSimpleName();
         if (table != null && StringUtils.isNotEmpty(table.value())) {
         if (table != null && StringUtils.isNotEmpty(table.value())) {
             tableName = table.value();
             tableName = table.value();
         } else {
         } else {
-            // 开启字段下划线申明
-            if (globalConfig.isDbColumnUnderline()) {
+            // 开启表名下划线申明
+            if (dbConfig.isTableUnderline()) {
                 tableName = StringUtils.camelToUnderline(tableName);
                 tableName = StringUtils.camelToUnderline(tableName);
+                if (null != dbConfig.getTablePrefix()) {
+                    // 存在表名前缀
+                    tableName = dbConfig.getTablePrefix() + tableName;
+                }
             }
             }
             // 大写命名判断
             // 大写命名判断
-            if (globalConfig.isCapitalMode()) {
+            if (dbConfig.isCapitalMode()) {
                 tableName = tableName.toUpperCase();
                 tableName = tableName.toUpperCase();
             } else {
             } else {
                 // 首字母小写
                 // 首字母小写
@@ -138,7 +147,7 @@ public class TableInfoHelper {
         tableInfo.setTableName(tableName);
         tableInfo.setTableName(tableName);
 
 
         // 开启了自定义 KEY 生成器
         // 开启了自定义 KEY 生成器
-        if (null != globalConfig.getKeyGenerator()) {
+        if (null != dbConfig.getKeyGenerator()) {
             tableInfo.setKeySequence(clazz.getAnnotation(KeySequence.class));
             tableInfo.setKeySequence(clazz.getAnnotation(KeySequence.class));
         }
         }
 
 
@@ -157,9 +166,9 @@ public class TableInfoHelper {
              */
              */
             if (!isReadPK) {
             if (!isReadPK) {
                 if (existTableId) {
                 if (existTableId) {
-                    isReadPK = initTableId(globalConfig, tableInfo, field, clazz);
+                    isReadPK = initTableId(dbConfig, tableInfo, field, clazz);
                 } else {
                 } else {
-                    isReadPK = initFieldId(globalConfig, tableInfo, field, clazz);
+                    isReadPK = initFieldId(dbConfig, tableInfo, field, clazz);
                 }
                 }
                 if (isReadPK) {
                 if (isReadPK) {
                     continue;
                     continue;
@@ -169,14 +178,14 @@ public class TableInfoHelper {
             /*
             /*
              * 字段初始化
              * 字段初始化
              */
              */
-            if (initTableField(globalConfig, tableInfo, fieldList, field, clazz)) {
+            if (initTableField(dbConfig, tableInfo, fieldList, field, clazz)) {
                 continue;
                 continue;
             }
             }
 
 
             /*
             /*
              * 字段, 使用 camelToUnderline 转换驼峰写法为下划线分割法, 如果已指定 TableField , 便不会执行这里
              * 字段, 使用 camelToUnderline 转换驼峰写法为下划线分割法, 如果已指定 TableField , 便不会执行这里
              */
              */
-            fieldList.add(new TableFieldInfo(globalConfig, tableInfo, field));
+            fieldList.add(new TableFieldInfo(dbConfig, tableInfo, field));
         }
         }
 
 
         /* 字段列表 */
         /* 字段列表 */
@@ -224,7 +233,7 @@ public class TableInfoHelper {
      * @param clazz
      * @param clazz
      * @return true 继续下一个属性判断,返回 continue;
      * @return true 继续下一个属性判断,返回 continue;
      */
      */
-    private static boolean initTableId(GlobalConfiguration globalConfig, TableInfo tableInfo, Field field, Class<?> clazz) {
+    private static boolean initTableId(DbConfig dbConfig, TableInfo tableInfo, Field field, Class<?> clazz) {
         TableId tableId = field.getAnnotation(TableId.class);
         TableId tableId = field.getAnnotation(TableId.class);
         if (tableId != null) {
         if (tableId != null) {
             if (StringUtils.isEmpty(tableInfo.getKeyColumn())) {
             if (StringUtils.isEmpty(tableInfo.getKeyColumn())) {
@@ -235,7 +244,7 @@ public class TableInfoHelper {
                 if (IdType.NONE != tableId.type()) {
                 if (IdType.NONE != tableId.type()) {
                     tableInfo.setIdType(tableId.type());
                     tableInfo.setIdType(tableId.type());
                 } else {
                 } else {
-                    tableInfo.setIdType(globalConfig.getIdType());
+                    tableInfo.setIdType(dbConfig.getIdType());
                 }
                 }
 
 
                 /* 字段 */
                 /* 字段 */
@@ -245,12 +254,12 @@ public class TableInfoHelper {
                     tableInfo.setKeyRelated(true);
                     tableInfo.setKeyRelated(true);
                 } else {
                 } else {
                     // 开启字段下划线申明
                     // 开启字段下划线申明
-                    if (globalConfig.isDbColumnUnderline()) {
+                    if (dbConfig.isColumnUnderline()) {
                         column = StringUtils.camelToUnderline(column);
                         column = StringUtils.camelToUnderline(column);
                         tableInfo.setKeyRelated(true);
                         tableInfo.setKeyRelated(true);
                     }
                     }
                     // 全局大写命名
                     // 全局大写命名
-                    if (globalConfig.isCapitalMode()) {
+                    if (dbConfig.isCapitalMode()) {
                         column = column.toUpperCase();
                         column = column.toUpperCase();
                     }
                     }
                 }
                 }
@@ -274,14 +283,14 @@ public class TableInfoHelper {
      * @param clazz
      * @param clazz
      * @return true 继续下一个属性判断,返回 continue;
      * @return true 继续下一个属性判断,返回 continue;
      */
      */
-    private static boolean initFieldId(GlobalConfiguration globalConfig, TableInfo tableInfo, Field field, Class<?> clazz) {
+    private static boolean initFieldId(DbConfig dbConfig, TableInfo tableInfo, Field field, Class<?> clazz) {
         String column = field.getName();
         String column = field.getName();
-        if (globalConfig.isCapitalMode()) {
+        if (dbConfig.isCapitalMode()) {
             column = column.toUpperCase();
             column = column.toUpperCase();
         }
         }
         if (DEFAULT_ID_NAME.equalsIgnoreCase(column)) {
         if (DEFAULT_ID_NAME.equalsIgnoreCase(column)) {
             if (StringUtils.isEmpty(tableInfo.getKeyColumn())) {
             if (StringUtils.isEmpty(tableInfo.getKeyColumn())) {
-                tableInfo.setIdType(globalConfig.getIdType());
+                tableInfo.setIdType(dbConfig.getIdType());
                 tableInfo.setKeyColumn(column);
                 tableInfo.setKeyColumn(column);
                 tableInfo.setKeyProperty(field.getName());
                 tableInfo.setKeyProperty(field.getName());
                 return true;
                 return true;
@@ -309,41 +318,40 @@ public class TableInfoHelper {
      * 字段属性初始化
      * 字段属性初始化
      * </p>
      * </p>
      *
      *
-     * @param globalConfig 全局配置
-     * @param tableInfo    表信息
-     * @param fieldList    字段列表
-     * @param clazz        当前表对象类
+     * @param dbConfig  数据库全局配置
+     * @param tableInfo 表信息
+     * @param fieldList 字段列表
+     * @param clazz     当前表对象类
      * @return true 继续下一个属性判断,返回 continue;
      * @return true 继续下一个属性判断,返回 continue;
      */
      */
-    private static boolean initTableField(GlobalConfiguration globalConfig, TableInfo tableInfo, List<TableFieldInfo> fieldList,
+    private static boolean initTableField(DbConfig dbConfig, TableInfo tableInfo, List<TableFieldInfo> fieldList,
                                           Field field, Class<?> clazz) {
                                           Field field, Class<?> clazz) {
         /* 获取注解属性,自定义字段 */
         /* 获取注解属性,自定义字段 */
         TableField tableField = field.getAnnotation(TableField.class);
         TableField tableField = field.getAnnotation(TableField.class);
-        if (tableField != null) {
-            String columnName = field.getName();
-            if (StringUtils.isNotEmpty(tableField.value())) {
-                columnName = tableField.value();
-            }
-            /*
-             * el 语法支持,可以传入多个参数以逗号分开
-             */
-            String el = field.getName();
-            if (StringUtils.isNotEmpty(tableField.el())) {
-                el = tableField.el();
-            }
-            String[] columns = columnName.split(";");
-            String[] els = el.split(";");
-            if (columns.length == els.length) {
-                for (int i = 0; i < columns.length; i++) {
-                    fieldList.add(new TableFieldInfo(globalConfig, tableInfo, columns[i], els[i], field, tableField));
-                }
-            } else {
-                String errorMsg = "Class: %s, Field: %s, 'value' 'el' Length must be consistent.";
-                throw new MybatisPlusException(String.format(errorMsg, clazz.getName(), field.getName()));
+        if (null == tableField) {
+            return false;
+        }
+        String columnName = field.getName();
+        if (StringUtils.isNotEmpty(tableField.value())) {
+            columnName = tableField.value();
+        }
+        /*
+         * el 语法支持,可以传入多个参数以逗号分开
+         */
+        String el = field.getName();
+        if (StringUtils.isNotEmpty(tableField.el())) {
+            el = tableField.el();
+        }
+        String[] columns = columnName.split(";");
+        String[] els = el.split(";");
+        if (columns.length == els.length) {
+            for (int i = 0; i < columns.length; i++) {
+                fieldList.add(new TableFieldInfo(dbConfig, tableInfo, columns[i], els[i], field, tableField));
             }
             }
             return true;
             return true;
         }
         }
-        return false;
+        throw new MybatisPlusException(String.format("Class: %s, Field: %s, 'value' 'el' Length must be consistent.",
+            clazz.getName(), field.getName()));
     }
     }
 
 
     /**
     /**
@@ -376,11 +384,11 @@ public class TableInfoHelper {
      */
      */
     public static void initSqlSessionFactory(SqlSessionFactory sqlSessionFactory) {
     public static void initSqlSessionFactory(SqlSessionFactory sqlSessionFactory) {
         Configuration configuration = sqlSessionFactory.getConfiguration();
         Configuration configuration = sqlSessionFactory.getConfiguration();
-        GlobalConfiguration globalConfig = GlobalConfigUtils.getGlobalConfig(configuration);
+        GlobalConfig globalConfig = GlobalConfigUtils.getGlobalConfig(configuration);
         // SqlRunner
         // SqlRunner
         ISqlRunner.FACTORY = sqlSessionFactory;
         ISqlRunner.FACTORY = sqlSessionFactory;
         if (globalConfig == null) {
         if (globalConfig == null) {
-            GlobalConfiguration defaultCache = GlobalConfigUtils.defaults();
+            GlobalConfig defaultCache = GlobalConfigUtils.defaults();
             defaultCache.setSqlSessionFactory(sqlSessionFactory);
             defaultCache.setSqlSessionFactory(sqlSessionFactory);
             GlobalConfigUtils.setGlobalConfig(configuration, defaultCache);
             GlobalConfigUtils.setGlobalConfig(configuration, defaultCache);
         } else {
         } else {

+ 4 - 0
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/package-info.java

@@ -0,0 +1,4 @@
+/**
+ * 工具类
+ */
+package com.baomidou.mybatisplus.core.toolkit;

+ 4 - 0
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/sql/package-info.java

@@ -0,0 +1,4 @@
+/**
+ * SQL 处理相关工具类
+ */
+package com.baomidou.mybatisplus.core.toolkit.sql;

+ 2 - 2
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/spring/MybatisMapperRefresh.java

@@ -42,7 +42,7 @@ import org.springframework.core.io.Resource;
 import org.springframework.core.io.UrlResource;
 import org.springframework.core.io.UrlResource;
 import org.springframework.util.ResourceUtils;
 import org.springframework.util.ResourceUtils;
 
 
-import com.baomidou.mybatisplus.core.metadata.GlobalConfiguration;
+import com.baomidou.mybatisplus.core.config.GlobalConfig;
 import com.baomidou.mybatisplus.core.toolkit.GlobalConfigUtils;
 import com.baomidou.mybatisplus.core.toolkit.GlobalConfigUtils;
 import com.baomidou.mybatisplus.core.toolkit.SystemClock;
 import com.baomidou.mybatisplus.core.toolkit.SystemClock;
 
 
@@ -106,7 +106,7 @@ public class MybatisMapperRefresh implements Runnable {
 
 
     @Override
     @Override
     public void run() {
     public void run() {
-        final GlobalConfiguration globalConfig = GlobalConfigUtils.getGlobalConfig(configuration);
+        final GlobalConfig globalConfig = GlobalConfigUtils.getGlobalConfig(configuration);
         /*
         /*
          * 启动 XML 热加载
          * 启动 XML 热加载
          */
          */

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

@@ -61,9 +61,9 @@ import org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy;
 
 
 import com.baomidou.mybatisplus.core.MybatisConfiguration;
 import com.baomidou.mybatisplus.core.MybatisConfiguration;
 import com.baomidou.mybatisplus.core.MybatisXMLConfigBuilder;
 import com.baomidou.mybatisplus.core.MybatisXMLConfigBuilder;
+import com.baomidou.mybatisplus.core.config.GlobalConfig;
 import com.baomidou.mybatisplus.core.enums.IEnum;
 import com.baomidou.mybatisplus.core.enums.IEnum;
 import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
 import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
-import com.baomidou.mybatisplus.core.metadata.GlobalConfiguration;
 import com.baomidou.mybatisplus.core.toolkit.GlobalConfigUtils;
 import com.baomidou.mybatisplus.core.toolkit.GlobalConfigUtils;
 import com.baomidou.mybatisplus.extension.toolkit.JdbcUtils;
 import com.baomidou.mybatisplus.extension.toolkit.JdbcUtils;
 import com.baomidou.mybatisplus.extension.toolkit.PackageHelper;
 import com.baomidou.mybatisplus.extension.toolkit.PackageHelper;
@@ -129,10 +129,10 @@ public class MybatisSqlSessionFactoryBean implements FactoryBean<SqlSessionFacto
 
 
     private ObjectWrapperFactory objectWrapperFactory;
     private ObjectWrapperFactory objectWrapperFactory;
 
 
-    private GlobalConfiguration globalConfig = GlobalConfigUtils.defaults();
+    private GlobalConfig globalConfig = GlobalConfigUtils.defaults();
 
 
     // TODO 注入全局配置
     // TODO 注入全局配置
-    public void setGlobalConfig(GlobalConfiguration globalConfig) {
+    public void setGlobalConfig(GlobalConfig globalConfig) {
         this.globalConfig = globalConfig;
         this.globalConfig = globalConfig;
     }
     }
 
 

+ 6 - 6
mybatis-plus-extension/src/test/java/com/baomidou/mybatisplus/extension/test/CrudTest.java

@@ -21,7 +21,7 @@ import org.apache.commons.dbcp2.BasicDataSource;
 import org.apache.ibatis.session.SqlSessionFactory;
 import org.apache.ibatis.session.SqlSessionFactory;
 
 
 import com.baomidou.mybatisplus.core.MybatisSessionFactoryBuilder;
 import com.baomidou.mybatisplus.core.MybatisSessionFactoryBuilder;
-import com.baomidou.mybatisplus.core.metadata.GlobalConfiguration;
+import com.baomidou.mybatisplus.core.config.GlobalConfig;
 import com.baomidou.mybatisplus.core.toolkit.GlobalConfigUtils;
 import com.baomidou.mybatisplus.core.toolkit.GlobalConfigUtils;
 
 
 
 
@@ -35,11 +35,11 @@ import com.baomidou.mybatisplus.core.toolkit.GlobalConfigUtils;
  */
  */
 public class CrudTest {
 public class CrudTest {
 
 
-    public GlobalConfiguration globalConfiguration() {
-        GlobalConfiguration global = GlobalConfigUtils.defaults();
+    public GlobalConfig globalConfiguration() {
+        GlobalConfig global = GlobalConfigUtils.defaults();
         // global.setAutoSetDbType(true);
         // global.setAutoSetDbType(true);
         // 设置全局校验机制为FieldStrategy.Empty
         // 设置全局校验机制为FieldStrategy.Empty
-        global.setFieldStrategy(2);
+        global.getDbConfig().setFieldStrategy(2);
         return global;
         return global;
     }
     }
 
 
@@ -48,14 +48,14 @@ public class CrudTest {
     }
     }
 
 
     public SqlSessionFactory sqlSessionFactory(String configXml) {
     public SqlSessionFactory sqlSessionFactory(String configXml) {
-        GlobalConfiguration global = this.globalConfiguration();
+        GlobalConfig global = this.globalConfiguration();
         BasicDataSource dataSource = new BasicDataSource();
         BasicDataSource dataSource = new BasicDataSource();
         dataSource.setDriverClassName("com.mysql.jdbc.Driver");
         dataSource.setDriverClassName("com.mysql.jdbc.Driver");
         dataSource.setUrl("jdbc:mysql://127.0.0.1:3306/mybatis-plus?characterEncoding=UTF-8");
         dataSource.setUrl("jdbc:mysql://127.0.0.1:3306/mybatis-plus?characterEncoding=UTF-8");
         dataSource.setUsername("root");
         dataSource.setUsername("root");
         dataSource.setPassword("521");
         dataSource.setPassword("521");
         dataSource.setMaxTotal(1000);
         dataSource.setMaxTotal(1000);
-        GlobalConfigUtils.setMetaData(dataSource, global);
+        //GlobalConfigUtils.setMetaData(dataSource, global);
         // 加载配置文件
         // 加载配置文件
         InputStream inputStream = CrudTest.class.getClassLoader().getResourceAsStream(configXml);
         InputStream inputStream = CrudTest.class.getClassLoader().getResourceAsStream(configXml);
         MybatisSessionFactoryBuilder factoryBuilder = new MybatisSessionFactoryBuilder();
         MybatisSessionFactoryBuilder factoryBuilder = new MybatisSessionFactoryBuilder();

+ 4 - 5
mybatis-plus-extension/src/test/java/com/baomidou/mybatisplus/extension/test/h2/config/MybatisConfigMetaObjOptLockConfig.java

@@ -12,14 +12,13 @@ import org.springframework.core.io.ResourceLoader;
 
 
 import com.baomidou.mybatisplus.core.MybatisConfiguration;
 import com.baomidou.mybatisplus.core.MybatisConfiguration;
 import com.baomidou.mybatisplus.core.MybatisXMLLanguageDriver;
 import com.baomidou.mybatisplus.core.MybatisXMLLanguageDriver;
-import com.baomidou.mybatisplus.core.metadata.GlobalConfiguration;
+import com.baomidou.mybatisplus.core.config.GlobalConfig;
 import com.baomidou.mybatisplus.extension.injector.LogicSqlInjector;
 import com.baomidou.mybatisplus.extension.injector.LogicSqlInjector;
 import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor;
 import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor;
 import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
 import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
 import com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor;
 import com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor;
 import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
 import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
 import com.baomidou.mybatisplus.extension.test.h2.H2MetaObjectHandler;
 import com.baomidou.mybatisplus.extension.test.h2.H2MetaObjectHandler;
-import com.baomidou.mybatisplus.extension.test.h2.H2MetaObjectHandler;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -34,7 +33,7 @@ import com.baomidou.mybatisplus.extension.test.h2.H2MetaObjectHandler;
 public class MybatisConfigMetaObjOptLockConfig {
 public class MybatisConfigMetaObjOptLockConfig {
 
 
     @Bean("mybatisSqlSession")
     @Bean("mybatisSqlSession")
-    public SqlSessionFactory sqlSessionFactory(DataSource dataSource, ResourceLoader resourceLoader, GlobalConfiguration globalConfiguration) throws Exception {
+    public SqlSessionFactory sqlSessionFactory(DataSource dataSource, ResourceLoader resourceLoader, GlobalConfig globalConfiguration) throws Exception {
         MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();
         MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();
         sqlSessionFactory.setDataSource(dataSource);
         sqlSessionFactory.setDataSource(dataSource);
 //        sqlSessionFactory.setConfigLocation(resourceLoader.getResource("classpath:mybatis-config.xml"));
 //        sqlSessionFactory.setConfigLocation(resourceLoader.getResource("classpath:mybatis-config.xml"));
@@ -54,8 +53,8 @@ public class MybatisConfigMetaObjOptLockConfig {
     }
     }
 
 
     @Bean
     @Bean
-    public GlobalConfiguration globalConfiguration() {
-        GlobalConfiguration conf = new GlobalConfiguration(new LogicSqlInjector());
+    public GlobalConfig globalConfiguration() {
+        GlobalConfig conf = new GlobalConfig(new LogicSqlInjector());
         conf.setLogicDeleteValue("-1");
         conf.setLogicDeleteValue("-1");
         conf.setLogicNotDeleteValue("1");
         conf.setLogicNotDeleteValue("1");
         conf.setIdType(2);
         conf.setIdType(2);

+ 4 - 5
mybatis-plus-extension/src/test/java/com/baomidou/mybatisplus/extension/test/h2/config/MybatisPlusConfig.java

@@ -11,14 +11,13 @@ import org.springframework.context.annotation.Configuration;
 import org.springframework.core.io.ResourceLoader;
 import org.springframework.core.io.ResourceLoader;
 
 
 import com.baomidou.mybatisplus.core.MybatisConfiguration;
 import com.baomidou.mybatisplus.core.MybatisConfiguration;
-import com.baomidou.mybatisplus.core.metadata.GlobalConfiguration;
+import com.baomidou.mybatisplus.core.config.GlobalConfig;
 import com.baomidou.mybatisplus.extension.injector.LogicSqlInjector;
 import com.baomidou.mybatisplus.extension.injector.LogicSqlInjector;
 import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor;
 import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor;
 import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
 import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
 import com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor;
 import com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor;
 import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
 import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
 import com.baomidou.mybatisplus.extension.test.h2.H2MetaObjectHandler;
 import com.baomidou.mybatisplus.extension.test.h2.H2MetaObjectHandler;
-import com.baomidou.mybatisplus.extension.test.h2.H2MetaObjectHandler;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -33,7 +32,7 @@ import com.baomidou.mybatisplus.extension.test.h2.H2MetaObjectHandler;
 public class MybatisPlusConfig {
 public class MybatisPlusConfig {
 
 
     @Bean("mybatisSqlSession")
     @Bean("mybatisSqlSession")
-    public SqlSessionFactory sqlSessionFactory(DataSource dataSource, ResourceLoader resourceLoader, GlobalConfiguration globalConfiguration) throws Exception {
+    public SqlSessionFactory sqlSessionFactory(DataSource dataSource, ResourceLoader resourceLoader, GlobalConfig globalConfiguration) throws Exception {
         MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();
         MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();
         sqlSessionFactory.setDataSource(dataSource);
         sqlSessionFactory.setDataSource(dataSource);
 //        sqlSessionFactory.setConfigLocation(resourceLoader.getResource("classpath:mybatis-config.xml"));
 //        sqlSessionFactory.setConfigLocation(resourceLoader.getResource("classpath:mybatis-config.xml"));
@@ -58,8 +57,8 @@ public class MybatisPlusConfig {
     }
     }
 
 
     @Bean
     @Bean
-    public GlobalConfiguration globalConfiguration() {
-        GlobalConfiguration conf = new GlobalConfiguration(new LogicSqlInjector());
+    public GlobalConfig globalConfiguration() {
+        GlobalConfig conf = new GlobalConfig(new LogicSqlInjector());
         conf.setLogicDeleteValue("-1");
         conf.setLogicDeleteValue("-1");
         conf.setLogicNotDeleteValue("1");
         conf.setLogicNotDeleteValue("1");
         conf.setIdType(2);
         conf.setIdType(2);

+ 4 - 4
mybatis-plus-extension/src/test/java/com/baomidou/mybatisplus/extension/test/h2/config/MybatisPlusConfigMapUnderline2Camel.java

@@ -12,7 +12,7 @@ import org.springframework.context.annotation.Configuration;
 import org.springframework.core.io.ResourceLoader;
 import org.springframework.core.io.ResourceLoader;
 
 
 import com.baomidou.mybatisplus.core.MybatisConfiguration;
 import com.baomidou.mybatisplus.core.MybatisConfiguration;
-import com.baomidou.mybatisplus.core.metadata.GlobalConfiguration;
+import com.baomidou.mybatisplus.core.config.GlobalConfig;
 import com.baomidou.mybatisplus.extension.MybatisMapWrapperFactory;
 import com.baomidou.mybatisplus.extension.MybatisMapWrapperFactory;
 import com.baomidou.mybatisplus.extension.injector.LogicSqlInjector;
 import com.baomidou.mybatisplus.extension.injector.LogicSqlInjector;
 import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor;
 import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor;
@@ -35,7 +35,7 @@ import com.baomidou.mybatisplus.extension.test.h2.H2MetaObjectHandler;
 public class MybatisPlusConfigMapUnderline2Camel {
 public class MybatisPlusConfigMapUnderline2Camel {
 
 
     @Bean("mybatisSqlSession")
     @Bean("mybatisSqlSession")
-    public SqlSessionFactory sqlSessionFactory(DataSource dataSource, ResourceLoader resourceLoader, GlobalConfiguration globalConfiguration) throws Exception {
+    public SqlSessionFactory sqlSessionFactory(DataSource dataSource, ResourceLoader resourceLoader, GlobalConfig globalConfiguration) throws Exception {
         MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();
         MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();
         sqlSessionFactory.setDataSource(dataSource);
         sqlSessionFactory.setDataSource(dataSource);
 //        sqlSessionFactory.setConfigLocation(resourceLoader.getResource("classpath:mybatis-config.xml"));
 //        sqlSessionFactory.setConfigLocation(resourceLoader.getResource("classpath:mybatis-config.xml"));
@@ -61,8 +61,8 @@ public class MybatisPlusConfigMapUnderline2Camel {
     }
     }
 
 
     @Bean
     @Bean
-    public GlobalConfiguration globalConfiguration() {
-        GlobalConfiguration conf = new GlobalConfiguration(new LogicSqlInjector());
+    public GlobalConfig globalConfiguration() {
+        GlobalConfig conf = new GlobalConfig(new LogicSqlInjector());
         conf.setLogicDeleteValue("-1");
         conf.setLogicDeleteValue("-1");
         conf.setLogicNotDeleteValue("1");
         conf.setLogicNotDeleteValue("1");
         conf.setIdType(2);
         conf.setIdType(2);

+ 4 - 4
mybatis-plus-extension/src/test/java/com/baomidou/mybatisplus/extension/test/h2/config/MybatisPlusLoginDeleteConfig.java

@@ -12,7 +12,7 @@ import org.springframework.core.io.ResourceLoader;
 
 
 import com.baomidou.mybatisplus.core.MybatisConfiguration;
 import com.baomidou.mybatisplus.core.MybatisConfiguration;
 import com.baomidou.mybatisplus.core.MybatisXMLLanguageDriver;
 import com.baomidou.mybatisplus.core.MybatisXMLLanguageDriver;
-import com.baomidou.mybatisplus.core.metadata.GlobalConfiguration;
+import com.baomidou.mybatisplus.core.config.GlobalConfig;
 import com.baomidou.mybatisplus.extension.injector.LogicSqlInjector;
 import com.baomidou.mybatisplus.extension.injector.LogicSqlInjector;
 import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor;
 import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor;
 import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
 import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
@@ -33,7 +33,7 @@ import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
 public class MybatisPlusLoginDeleteConfig {
 public class MybatisPlusLoginDeleteConfig {
 
 
     @Bean("mybatisSqlSession")
     @Bean("mybatisSqlSession")
-    public SqlSessionFactory sqlSessionFactory(DataSource dataSource, ResourceLoader resourceLoader, GlobalConfiguration globalConfiguration) throws Exception {
+    public SqlSessionFactory sqlSessionFactory(DataSource dataSource, ResourceLoader resourceLoader, GlobalConfig globalConfiguration) throws Exception {
         MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();
         MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();
         sqlSessionFactory.setDataSource(dataSource);
         sqlSessionFactory.setDataSource(dataSource);
 //        sqlSessionFactory.setConfigLocation(resourceLoader.getResource("classpath:mybatis-config.xml"));
 //        sqlSessionFactory.setConfigLocation(resourceLoader.getResource("classpath:mybatis-config.xml"));
@@ -54,8 +54,8 @@ public class MybatisPlusLoginDeleteConfig {
     }
     }
 
 
     @Bean
     @Bean
-    public GlobalConfiguration globalConfiguration() {
-        GlobalConfiguration conf = new GlobalConfiguration(new LogicSqlInjector());
+    public GlobalConfig globalConfiguration() {
+        GlobalConfig conf = new GlobalConfig(new LogicSqlInjector());
         conf.setLogicDeleteValue("-1");
         conf.setLogicDeleteValue("-1");
         conf.setLogicNotDeleteValue("1");
         conf.setLogicNotDeleteValue("1");
         conf.setIdType(2);
         conf.setIdType(2);

+ 4 - 5
mybatis-plus-extension/src/test/java/com/baomidou/mybatisplus/extension/test/h2/config/MybatisPlusMetaObjConfig.java

@@ -12,12 +12,11 @@ import org.springframework.core.io.ResourceLoader;
 
 
 import com.baomidou.mybatisplus.core.MybatisConfiguration;
 import com.baomidou.mybatisplus.core.MybatisConfiguration;
 import com.baomidou.mybatisplus.core.MybatisXMLLanguageDriver;
 import com.baomidou.mybatisplus.core.MybatisXMLLanguageDriver;
-import com.baomidou.mybatisplus.core.metadata.GlobalConfiguration;
+import com.baomidou.mybatisplus.core.config.GlobalConfig;
 import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
 import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
 import com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor;
 import com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor;
 import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
 import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
 import com.baomidou.mybatisplus.extension.test.h2.H2MetaObjectHandler;
 import com.baomidou.mybatisplus.extension.test.h2.H2MetaObjectHandler;
-import com.baomidou.mybatisplus.extension.test.h2.H2MetaObjectHandler;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -32,7 +31,7 @@ import com.baomidou.mybatisplus.extension.test.h2.H2MetaObjectHandler;
 public class MybatisPlusMetaObjConfig {
 public class MybatisPlusMetaObjConfig {
 
 
     @Bean("mybatisSqlSession")
     @Bean("mybatisSqlSession")
-    public SqlSessionFactory sqlSessionFactory(DataSource dataSource, ResourceLoader resourceLoader, GlobalConfiguration globalConfiguration) throws Exception {
+    public SqlSessionFactory sqlSessionFactory(DataSource dataSource, ResourceLoader resourceLoader, GlobalConfig globalConfiguration) throws Exception {
         MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();
         MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();
         sqlSessionFactory.setDataSource(dataSource);
         sqlSessionFactory.setDataSource(dataSource);
 //        sqlSessionFactory.setConfigLocation(resourceLoader.getResource("classpath:mybatis-config.xml"));
 //        sqlSessionFactory.setConfigLocation(resourceLoader.getResource("classpath:mybatis-config.xml"));
@@ -51,8 +50,8 @@ public class MybatisPlusMetaObjConfig {
     }
     }
 
 
     @Bean
     @Bean
-    public GlobalConfiguration globalConfiguration() {
-        GlobalConfiguration globalConfiguration = new GlobalConfiguration();
+    public GlobalConfig globalConfiguration() {
+        GlobalConfig globalConfiguration = new GlobalConfig();
         globalConfiguration.setIdType(2);
         globalConfiguration.setIdType(2);
         globalConfiguration.setMetaObjectHandler(new H2MetaObjectHandler());
         globalConfiguration.setMetaObjectHandler(new H2MetaObjectHandler());
         return globalConfiguration;
         return globalConfiguration;

+ 4 - 4
mybatis-plus-extension/src/test/java/com/baomidou/mybatisplus/extension/test/h2/config/MybatisPlusNoOptLockConfig.java

@@ -12,7 +12,7 @@ import org.springframework.core.io.ResourceLoader;
 
 
 import com.baomidou.mybatisplus.core.MybatisConfiguration;
 import com.baomidou.mybatisplus.core.MybatisConfiguration;
 import com.baomidou.mybatisplus.core.MybatisXMLLanguageDriver;
 import com.baomidou.mybatisplus.core.MybatisXMLLanguageDriver;
-import com.baomidou.mybatisplus.core.metadata.GlobalConfiguration;
+import com.baomidou.mybatisplus.core.config.GlobalConfig;
 import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
 import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
 import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
 import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
 
 
@@ -30,7 +30,7 @@ import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
 public class MybatisPlusNoOptLockConfig {
 public class MybatisPlusNoOptLockConfig {
 
 
     @Bean("mybatisSqlSession")
     @Bean("mybatisSqlSession")
-    public SqlSessionFactory sqlSessionFactory(DataSource dataSource, ResourceLoader resourceLoader, GlobalConfiguration globalConfiguration) throws Exception {
+    public SqlSessionFactory sqlSessionFactory(DataSource dataSource, ResourceLoader resourceLoader, GlobalConfig globalConfiguration) throws Exception {
         MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();
         MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();
         sqlSessionFactory.setDataSource(dataSource);
         sqlSessionFactory.setDataSource(dataSource);
 //        sqlSessionFactory.setConfigLocation(resourceLoader.getResource("classpath:mybatis-config.xml"));
 //        sqlSessionFactory.setConfigLocation(resourceLoader.getResource("classpath:mybatis-config.xml"));
@@ -48,8 +48,8 @@ public class MybatisPlusNoOptLockConfig {
     }
     }
 
 
     @Bean
     @Bean
-    public GlobalConfiguration globalConfiguration() {
-        GlobalConfiguration globalConfiguration = new GlobalConfiguration();
+    public GlobalConfig globalConfiguration() {
+        GlobalConfig globalConfiguration = new GlobalConfig();
         globalConfiguration.setIdType(2);
         globalConfiguration.setIdType(2);
         return globalConfiguration;
         return globalConfiguration;
     }
     }

+ 6 - 6
mybatis-plus-extension/src/test/java/com/baomidou/mybatisplus/extension/test/h2/config/MybatisPlusSequenceConfig.java

@@ -12,7 +12,7 @@ import org.springframework.core.io.ResourceLoader;
 
 
 import com.baomidou.mybatisplus.core.MybatisConfiguration;
 import com.baomidou.mybatisplus.core.MybatisConfiguration;
 import com.baomidou.mybatisplus.core.MybatisXMLLanguageDriver;
 import com.baomidou.mybatisplus.core.MybatisXMLLanguageDriver;
-import com.baomidou.mybatisplus.core.metadata.GlobalConfiguration;
+import com.baomidou.mybatisplus.core.config.GlobalConfig;
 import com.baomidou.mybatisplus.extension.incrementer.H2KeyGenerator;
 import com.baomidou.mybatisplus.extension.incrementer.H2KeyGenerator;
 import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor;
 import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor;
 import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
 import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
@@ -33,7 +33,7 @@ import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
 public class MybatisPlusSequenceConfig {
 public class MybatisPlusSequenceConfig {
 
 
     @Bean("mybatisSqlSession")
     @Bean("mybatisSqlSession")
-    public SqlSessionFactory sqlSessionFactory(DataSource dataSource, ResourceLoader resourceLoader, GlobalConfiguration globalConfiguration) throws Exception {
+    public SqlSessionFactory sqlSessionFactory(DataSource dataSource, ResourceLoader resourceLoader, GlobalConfig globalConfiguration) throws Exception {
         MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();
         MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();
         sqlSessionFactory.setDataSource(dataSource);
         sqlSessionFactory.setDataSource(dataSource);
 //        sqlSessionFactory.setConfigLocation(resourceLoader.getResource("classpath:mybatis-config.xml"));
 //        sqlSessionFactory.setConfigLocation(resourceLoader.getResource("classpath:mybatis-config.xml"));
@@ -54,11 +54,11 @@ public class MybatisPlusSequenceConfig {
     }
     }
 
 
     @Bean
     @Bean
-    public GlobalConfiguration globalConfiguration() {
-        GlobalConfiguration conf = new GlobalConfiguration();
-        conf.setIdType(2);
+    public GlobalConfig globalConfiguration() {
+        GlobalConfig conf = new GlobalConfig();
+        conf.getDbConfig().setIdType(2);
 //        conf.setDbType("h2");
 //        conf.setDbType("h2");
-        conf.setKeyGenerator(new H2KeyGenerator());
+        conf.getDbConfig().setKeyGenerator(new H2KeyGenerator());
 //        conf.setDbColumnUnderline(true);
 //        conf.setDbColumnUnderline(true);
         return conf;
         return conf;
     }
     }

+ 3 - 3
mybatis-plus-extension/src/test/java/com/baomidou/mybatisplus/extension/test/mysql/LogicDeleteTest.java

@@ -23,7 +23,7 @@ import org.apache.ibatis.session.SqlSession;
 import org.junit.Test;
 import org.junit.Test;
 
 
 import com.baomidou.mybatisplus.core.conditions.Condition;
 import com.baomidou.mybatisplus.core.conditions.Condition;
-import com.baomidou.mybatisplus.core.metadata.GlobalConfiguration;
+import com.baomidou.mybatisplus.core.config.GlobalConfig;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.extension.test.CrudTest;
 import com.baomidou.mybatisplus.extension.test.CrudTest;
 import com.baomidou.mybatisplus.extension.test.mysql.entity.User;
 import com.baomidou.mybatisplus.extension.test.mysql.entity.User;
@@ -40,8 +40,8 @@ import com.baomidou.mybatisplus.extension.test.mysql.mapper.UserMapper;
 public class LogicDeleteTest extends CrudTest {
 public class LogicDeleteTest extends CrudTest {
 
 
     @Override
     @Override
-    public GlobalConfiguration globalConfiguration() {
-        GlobalConfiguration gc = super.globalConfiguration();
+    public GlobalConfig globalConfiguration() {
+        GlobalConfig gc = super.globalConfiguration();
         gc.setLogicDeleteValue("-1");// 逻辑删除值 -1 测试字段 type
         gc.setLogicDeleteValue("-1");// 逻辑删除值 -1 测试字段 type
         return gc;
         return gc;
     }
     }

+ 3 - 7
mybatis-plus-extension/src/test/java/com/baomidou/mybatisplus/extension/test/mysql/UserMapperTest.java

@@ -24,7 +24,7 @@ import org.apache.ibatis.session.SqlSession;
 import org.junit.Test;
 import org.junit.Test;
 
 
 import com.baomidou.mybatisplus.core.conditions.EntityWrapper;
 import com.baomidou.mybatisplus.core.conditions.EntityWrapper;
-import com.baomidou.mybatisplus.core.metadata.GlobalConfiguration;
+import com.baomidou.mybatisplus.core.config.GlobalConfig;
 import com.baomidou.mybatisplus.core.pagination.Page;
 import com.baomidou.mybatisplus.core.pagination.Page;
 import com.baomidou.mybatisplus.core.pagination.Pagination;
 import com.baomidou.mybatisplus.core.pagination.Pagination;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
@@ -32,10 +32,6 @@ import com.baomidou.mybatisplus.extension.test.CrudTest;
 import com.baomidou.mybatisplus.extension.test.mysql.entity.Role;
 import com.baomidou.mybatisplus.extension.test.mysql.entity.Role;
 import com.baomidou.mybatisplus.extension.test.mysql.entity.User;
 import com.baomidou.mybatisplus.extension.test.mysql.entity.User;
 import com.baomidou.mybatisplus.extension.test.mysql.mapper.UserMapper;
 import com.baomidou.mybatisplus.extension.test.mysql.mapper.UserMapper;
-import com.baomidou.mybatisplus.extension.test.CrudTest;
-import com.baomidou.mybatisplus.extension.test.mysql.entity.Role;
-import com.baomidou.mybatisplus.extension.test.mysql.entity.User;
-import com.baomidou.mybatisplus.extension.test.mysql.mapper.UserMapper;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -53,8 +49,8 @@ import com.baomidou.mybatisplus.extension.test.mysql.mapper.UserMapper;
 public class UserMapperTest extends CrudTest {
 public class UserMapperTest extends CrudTest {
 
 
     @Override
     @Override
-    public GlobalConfiguration globalConfiguration() {
-        GlobalConfiguration gc = super.globalConfiguration();
+    public GlobalConfig globalConfiguration() {
+        GlobalConfig gc = super.globalConfiguration();
         /**
         /**
          * 设置,自定义 元对象填充器,实现公共字段自动写入
          * 设置,自定义 元对象填充器,实现公共字段自动写入
          */
          */

+ 2 - 2
mybatis-plus-extension/src/test/java/com/baomidou/mybatisplus/extension/test/oracle/TestSequserMapperTest.java

@@ -24,7 +24,7 @@ import org.apache.ibatis.session.SqlSessionFactory;
 
 
 import com.baomidou.mybatisplus.core.MybatisSessionFactoryBuilder;
 import com.baomidou.mybatisplus.core.MybatisSessionFactoryBuilder;
 import com.baomidou.mybatisplus.core.conditions.EntityWrapper;
 import com.baomidou.mybatisplus.core.conditions.EntityWrapper;
-import com.baomidou.mybatisplus.core.metadata.GlobalConfiguration;
+import com.baomidou.mybatisplus.core.config.GlobalConfig;
 import com.baomidou.mybatisplus.extension.incrementer.OracleKeyGenerator;
 import com.baomidou.mybatisplus.extension.incrementer.OracleKeyGenerator;
 import com.baomidou.mybatisplus.extension.test.oracle.entity.TestSequser;
 import com.baomidou.mybatisplus.extension.test.oracle.entity.TestSequser;
 import com.baomidou.mybatisplus.extension.test.oracle.mapper.TestSequserMapper;
 import com.baomidou.mybatisplus.extension.test.oracle.mapper.TestSequserMapper;
@@ -52,7 +52,7 @@ public class TestSequserMapperTest {
         MybatisSessionFactoryBuilder mf = new MybatisSessionFactoryBuilder();
         MybatisSessionFactoryBuilder mf = new MybatisSessionFactoryBuilder();
 
 
         /** 设置数据库类型为 oracle */
         /** 设置数据库类型为 oracle */
-        GlobalConfiguration gc = new GlobalConfiguration();
+        GlobalConfig gc = new GlobalConfig();
         gc.setDbColumnUnderline(true);
         gc.setDbColumnUnderline(true);
         gc.setKeyGenerator(new OracleKeyGenerator());
         gc.setKeyGenerator(new OracleKeyGenerator());
         mf.setGlobalConfig(gc);
         mf.setGlobalConfig(gc);

+ 2 - 2
mybatis-plus-extension/src/test/java/com/baomidou/mybatisplus/extension/test/oracle/TestUserMapperTest.java

@@ -24,7 +24,7 @@ import org.apache.ibatis.session.SqlSessionFactory;
 
 
 import com.baomidou.mybatisplus.core.MybatisSessionFactoryBuilder;
 import com.baomidou.mybatisplus.core.MybatisSessionFactoryBuilder;
 import com.baomidou.mybatisplus.core.conditions.EntityWrapper;
 import com.baomidou.mybatisplus.core.conditions.EntityWrapper;
-import com.baomidou.mybatisplus.core.metadata.GlobalConfiguration;
+import com.baomidou.mybatisplus.core.config.GlobalConfig;
 import com.baomidou.mybatisplus.core.pagination.Page;
 import com.baomidou.mybatisplus.core.pagination.Page;
 import com.baomidou.mybatisplus.extension.test.oracle.entity.TestUser;
 import com.baomidou.mybatisplus.extension.test.oracle.entity.TestUser;
 import com.baomidou.mybatisplus.extension.test.oracle.mapper.TestUserMapper;
 import com.baomidou.mybatisplus.extension.test.oracle.mapper.TestUserMapper;
@@ -55,7 +55,7 @@ public class TestUserMapperTest {
         MybatisSessionFactoryBuilder mf = new MybatisSessionFactoryBuilder();
         MybatisSessionFactoryBuilder mf = new MybatisSessionFactoryBuilder();
 
 
         /** 设置数据库类型为 oracle */
         /** 设置数据库类型为 oracle */
-        GlobalConfiguration gc = new GlobalConfiguration();
+        GlobalConfig gc = new GlobalConfig();
         mf.setGlobalConfig(gc);
         mf.setGlobalConfig(gc);
 
 
         /*
         /*

+ 4 - 4
mybatis-plus-extension/src/test/java/com/baomidou/mybatisplus/extension/test/oracle/config/OracleMybatisPlusConfig.java

@@ -12,7 +12,7 @@ import org.springframework.core.io.ResourceLoader;
 
 
 import com.baomidou.mybatisplus.core.MybatisConfiguration;
 import com.baomidou.mybatisplus.core.MybatisConfiguration;
 import com.baomidou.mybatisplus.core.MybatisXMLLanguageDriver;
 import com.baomidou.mybatisplus.core.MybatisXMLLanguageDriver;
-import com.baomidou.mybatisplus.core.metadata.GlobalConfiguration;
+import com.baomidou.mybatisplus.core.config.GlobalConfig;
 import com.baomidou.mybatisplus.extension.incrementer.OracleKeyGenerator;
 import com.baomidou.mybatisplus.extension.incrementer.OracleKeyGenerator;
 import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
 import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
 import com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor;
 import com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor;
@@ -32,7 +32,7 @@ import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
 public class OracleMybatisPlusConfig {
 public class OracleMybatisPlusConfig {
 
 
     @Bean("mybatisSqlSession")
     @Bean("mybatisSqlSession")
-    public SqlSessionFactory sqlSessionFactory(DataSource dataSource, ResourceLoader resourceLoader, GlobalConfiguration globalConfiguration) throws Exception {
+    public SqlSessionFactory sqlSessionFactory(DataSource dataSource, ResourceLoader resourceLoader, GlobalConfig globalConfiguration) throws Exception {
         MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();
         MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();
         sqlSessionFactory.setDataSource(dataSource);
         sqlSessionFactory.setDataSource(dataSource);
         sqlSessionFactory.setTypeAliasesPackage("com.baomidou.mybatisplus.extension.test.oracle.entity");
         sqlSessionFactory.setTypeAliasesPackage("com.baomidou.mybatisplus.extension.test.oracle.entity");
@@ -51,8 +51,8 @@ public class OracleMybatisPlusConfig {
     }
     }
 
 
     @Bean
     @Bean
-    public GlobalConfiguration globalConfiguration() {
-        GlobalConfiguration conf = new GlobalConfiguration();
+    public GlobalConfig globalConfiguration() {
+        GlobalConfig conf = new GlobalConfig();
         conf.setIdType(1);
         conf.setIdType(1);
 //        conf.setDbType("oracle");
 //        conf.setDbType("oracle");
         conf.setKeyGenerator(new OracleKeyGenerator());
         conf.setKeyGenerator(new OracleKeyGenerator());

+ 1 - 1
mybatis-plus-extension/src/test/resources/h2/spring-test-h2-mvc-camel.xml

@@ -46,7 +46,7 @@
         <property name="objectWrapperFactory" ref="mybatisMapWrapperFactory"/>
         <property name="objectWrapperFactory" ref="mybatisMapWrapperFactory"/>
     </bean>
     </bean>
 
 
-    <bean id="globalConfig" class="com.baomidou.mybatisplus.core.metadata.GlobalConfiguration">
+    <bean id="globalConfig" class="com.baomidou.mybatisplus.core.config.GlobalConfig">
         <!-- 逻辑删除 定义下面3个参数-->
         <!-- 逻辑删除 定义下面3个参数-->
         <property name="sqlInjector" ref="logicSqlInjector"/>
         <property name="sqlInjector" ref="logicSqlInjector"/>
         <property name="logicDeleteValue" value="-1"/>
         <property name="logicDeleteValue" value="-1"/>