miemie 7 år sedan
förälder
incheckning
6c34e272b9

+ 50 - 35
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/TableInfoHelper.java

@@ -135,6 +135,7 @@ public class TableInfoHelper {
      * @param clazz 反射实体类
      * @return
      */
+    @SuppressWarnings("all")
     public synchronized static TableInfo initTableInfo(MapperBuilderAssistant builderAssistant, Class<?> clazz) {
         TableInfo tableInfo = TABLE_INFO_CACHE.get(clazz.getName());
         if (StringUtils.checkValNotNull(tableInfo)) {
@@ -154,52 +155,24 @@ public class TableInfoHelper {
             globalConfig = GlobalConfigUtils.defaults();
         }
 
-        /**
-         * 是否开启下划线转驼峰模式
-         */
+        /* 是否开启下划线转驼峰模式 */
         boolean underCamel = builderAssistant.getConfiguration().isMapUnderscoreToCamelCase();
-
         /* 数据库全局配置 */
         GlobalConfig.DbConfig dbConfig = globalConfig.getDbConfig();
-        tableInfo.setDbType(dbConfig.getDbType());
-        // 表名
-        TableName table = clazz.getAnnotation(TableName.class);
-        String tableName = clazz.getSimpleName();
-        if (table != null && StringUtils.isNotEmpty(table.value())) {
-            tableName = table.value();
-        } else {
-            // 开启表名下划线申明
-            if (dbConfig.isTableUnderline()) {
-                tableName = StringUtils.camelToUnderline(tableName);
-            }
-            // 大写命名判断
-            if (dbConfig.isCapitalMode()) {
-                tableName = tableName.toUpperCase();
-            } else {
-                // 首字母小写
-                tableName = StringUtils.firstToLowerCase(tableName);
-            }
-            // 存在表名前缀
-            if (null != dbConfig.getTablePrefix()) {
-                tableName = dbConfig.getTablePrefix() + tableName;
-            }
-        }
-        tableInfo.setTableName(tableName);
+        /* 初始化表名相关 */
+        initTableName(clazz, dbConfig, tableInfo);
 
         // 开启了自定义 KEY 生成器
         if (null != dbConfig.getKeyGenerator()) {
             tableInfo.setKeySequence(clazz.getAnnotation(KeySequence.class));
         }
 
-        /* 表结果集映射 */
-        if (table != null && StringUtils.isNotEmpty(table.resultMap())) {
-            tableInfo.setResultMap(table.resultMap());
-        }
+
         List<TableFieldInfo> fieldList = new ArrayList<>();
         List<Field> list = getAllFields(clazz);
         // 标记是否读取到主键
         boolean isReadPK = false;
-        boolean existTableId = existTableId(list);
+        boolean existTableId = isExistTableId(list);
         for (Field field : list) {
             /*
              * 主键ID 初始化
@@ -247,15 +220,57 @@ public class TableInfoHelper {
         return tableInfo;
     }
 
+    /**
+     * <p>
+     * 初始化 表数据库类型,表名,resultMap
+     * </p>
+     *
+     * @param clazz     class of entity
+     * @param dbConfig  数据库全局配置
+     * @param tableInfo 数据库表反射信息
+     */
+    public static void initTableName(Class<?> clazz, GlobalConfig.DbConfig dbConfig, TableInfo tableInfo) {
+        /* 设置数据库类型 */
+        tableInfo.setDbType(dbConfig.getDbType());
+        /* 设置表名 */
+        TableName table = clazz.getAnnotation(TableName.class);
+        String tableName = clazz.getSimpleName();
+        if (table != null && StringUtils.isNotEmpty(table.value())) {
+            tableName = table.value();
+        } else {
+            // 开启表名下划线申明
+            if (dbConfig.isTableUnderline()) {
+                tableName = StringUtils.camelToUnderline(tableName);
+            }
+            // 大写命名判断
+            if (dbConfig.isCapitalMode()) {
+                tableName = tableName.toUpperCase();
+            } else {
+                // 首字母小写
+                tableName = StringUtils.firstToLowerCase(tableName);
+            }
+            // 存在表名前缀
+            if (null != dbConfig.getTablePrefix()) {
+                tableName = dbConfig.getTablePrefix() + tableName;
+            }
+        }
+        tableInfo.setTableName(tableName);
+
+        /* 表结果集映射 */
+        if (table != null && StringUtils.isNotEmpty(table.resultMap())) {
+            tableInfo.setResultMap(table.resultMap());
+        }
+    }
+
     /**
      * <p>
      * 判断主键注解是否存在
      * </p>
      *
      * @param list 字段列表
-     * @return
+     * @return true 为存在 @TableId 注解;
      */
-    public static boolean existTableId(List<Field> list) {
+    public static boolean isExistTableId(List<Field> list) {
         for (Field field : list) {
             TableId tableId = field.getAnnotation(TableId.class);
             if (tableId != null) {