Browse Source

optimization codes

Caratacus 8 years ago
parent
commit
96650fbcb5

+ 3 - 1
src/main/java/com/baomidou/mybatisplus/enums/DBType.java

@@ -15,6 +15,8 @@
  */
  */
 package com.baomidou.mybatisplus.enums;
 package com.baomidou.mybatisplus.enums;
 
 
+import com.baomidou.mybatisplus.exceptions.MybatisPlusException;
+
 /**
 /**
  * <p>
  * <p>
  * MybatisPlus 数据库类型
  * MybatisPlus 数据库类型
@@ -92,7 +94,7 @@ public enum DBType {
                 return dt;
                 return dt;
             }
             }
         }
         }
-        return MYSQL;
+        throw new MybatisPlusException("Error: Unknown database type, or do not support changing database!\n");
     }
     }
 
 
     public String getDb() {
     public String getDb() {

+ 23 - 14
src/main/java/com/baomidou/mybatisplus/generator/AutoGenerator.java

@@ -15,6 +15,25 @@
  */
  */
 package com.baomidou.mybatisplus.generator;
 package com.baomidou.mybatisplus.generator;
 
 
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
+import org.apache.ibatis.logging.Log;
+import org.apache.ibatis.logging.LogFactory;
+import org.apache.velocity.Template;
+import org.apache.velocity.VelocityContext;
+import org.apache.velocity.app.Velocity;
+import org.apache.velocity.app.VelocityEngine;
+
 import com.baomidou.mybatisplus.generator.config.ConstVal;
 import com.baomidou.mybatisplus.generator.config.ConstVal;
 import com.baomidou.mybatisplus.generator.config.FileOutConfig;
 import com.baomidou.mybatisplus.generator.config.FileOutConfig;
 import com.baomidou.mybatisplus.generator.config.TemplateConfig;
 import com.baomidou.mybatisplus.generator.config.TemplateConfig;
@@ -23,16 +42,6 @@ import com.baomidou.mybatisplus.generator.config.po.TableField;
 import com.baomidou.mybatisplus.generator.config.po.TableInfo;
 import com.baomidou.mybatisplus.generator.config.po.TableInfo;
 import com.baomidou.mybatisplus.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.toolkit.StringUtils;
 import com.baomidou.mybatisplus.toolkit.StringUtils;
-import org.apache.ibatis.logging.Log;
-import org.apache.ibatis.logging.LogFactory;
-import org.apache.velocity.Template;
-import org.apache.velocity.VelocityContext;
-import org.apache.velocity.app.Velocity;
-import org.apache.velocity.app.VelocityEngine;
-
-import java.io.*;
-import java.text.SimpleDateFormat;
-import java.util.*;
 
 
 /**
 /**
  * 生成文件
  * 生成文件
@@ -133,7 +142,7 @@ public class AutoGenerator extends AbstractGenerator {
             }
             }
             if (tableInfo.isLogicDelete(config.getGlobalConfig().getLogicDeletePropertyName())) {
             if (tableInfo.isLogicDelete(config.getGlobalConfig().getLogicDeletePropertyName())) {
                 // 逻辑删除注解
                 // 逻辑删除注解
-            	tableInfo.setImportPackages("com.baomidou.mybatisplus.annotations.TableLogic");
+                tableInfo.setImportPackages("com.baomidou.mybatisplus.annotations.TableLogic");
             }
             }
             if (StringUtils.isNotEmpty(config.getSuperEntityClass())) {
             if (StringUtils.isNotEmpty(config.getSuperEntityClass())) {
                 // 父实体
                 // 父实体
@@ -142,7 +151,7 @@ public class AutoGenerator extends AbstractGenerator {
                 tableInfo.setImportPackages("java.io.Serializable");
                 tableInfo.setImportPackages("java.io.Serializable");
             }
             }
             // Boolean类型is前缀处理
             // Boolean类型is前缀处理
-            if ( config.getStrategyConfig().isEntityBooleanColumnRemoveIsPrefix() ) {
+            if (config.getStrategyConfig().isEntityBooleanColumnRemoveIsPrefix()) {
                 for (TableField field : tableInfo.getFields()) {
                 for (TableField field : tableInfo.getFields()) {
                     if (field.getPropertyType().equalsIgnoreCase("boolean")) {
                     if (field.getPropertyType().equalsIgnoreCase("boolean")) {
                         if (field.getPropertyName().indexOf("is") != -1) {
                         if (field.getPropertyName().indexOf("is") != -1) {
@@ -155,11 +164,11 @@ public class AutoGenerator extends AbstractGenerator {
                 }
                 }
             }
             }
             // RequestMapping 连字符风格 user-info
             // RequestMapping 连字符风格 user-info
-            if ( config.getStrategyConfig().isControllerMappingHyphenStyle() ) {
+            if (config.getStrategyConfig().isControllerMappingHyphenStyle()) {
                 ctx.put("controllerMappingHyphenStyle", config.getStrategyConfig().isControllerMappingHyphenStyle());
                 ctx.put("controllerMappingHyphenStyle", config.getStrategyConfig().isControllerMappingHyphenStyle());
                 ctx.put("controllerMappingHyphen", StringUtils.camelToHyphen(tableInfo.getEntityPath()));
                 ctx.put("controllerMappingHyphen", StringUtils.camelToHyphen(tableInfo.getEntityPath()));
             }
             }
-            
+
             ctx.put("restControllerStyle", config.getStrategyConfig().isRestControllerStyle());
             ctx.put("restControllerStyle", config.getStrategyConfig().isRestControllerStyle());
             ctx.put("package", packageInfo);
             ctx.put("package", packageInfo);
             ctx.put("author", config.getGlobalConfig().getAuthor());
             ctx.put("author", config.getGlobalConfig().getAuthor());

+ 7 - 7
src/main/java/com/baomidou/mybatisplus/generator/config/GlobalConfig.java

@@ -77,7 +77,7 @@ public class GlobalConfig {
      * 逻辑删除属性名称
      * 逻辑删除属性名称
      */
      */
     private String logicDeletePropertyName;
     private String logicDeletePropertyName;
-    
+
     public String getOutputDir() {
     public String getOutputDir() {
         return outputDir;
         return outputDir;
     }
     }
@@ -182,12 +182,12 @@ public class GlobalConfig {
         this.controllerName = controllerName;
         this.controllerName = controllerName;
     }
     }
 
 
-	public String getLogicDeletePropertyName() {
-		return logicDeletePropertyName;
-	}
+    public String getLogicDeletePropertyName() {
+        return logicDeletePropertyName;
+    }
 
 
-	public void setLogicDeletePropertyName(String logicDeletePropertyName) {
-		this.logicDeletePropertyName = logicDeletePropertyName;
-	}
+    public void setLogicDeletePropertyName(String logicDeletePropertyName) {
+        this.logicDeletePropertyName = logicDeletePropertyName;
+    }
 
 
 }
 }

+ 8 - 8
src/main/java/com/baomidou/mybatisplus/generator/config/po/TableInfo.java

@@ -204,14 +204,14 @@ public class TableInfo {
      * 逻辑删除
      * 逻辑删除
      */
      */
     public boolean isLogicDelete(String logicDeletePropertyName) {
     public boolean isLogicDelete(String logicDeletePropertyName) {
-    	for (TableField tableField : fields) {
-			if (tableField.getPropertyName().equals(logicDeletePropertyName)) {
-				return true;
-			}
-		}
-		return false;
-	}
-    
+        for (TableField tableField : fields) {
+            if (tableField.getPropertyName().equals(logicDeletePropertyName)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
     /**
     /**
      * 转换filed实体为xmlmapper中的basecolumn字符串信息
      * 转换filed实体为xmlmapper中的basecolumn字符串信息
      *
      *

+ 1 - 1
src/main/java/com/baomidou/mybatisplus/mapper/AutoSqlInjector.java

@@ -199,7 +199,7 @@ public class AutoSqlInjector implements ISqlInjector {
      * @param table
      * @param table
      */
      */
     protected void injectInsertOneSql(boolean selective, Class<?> mapperClass, Class<?> modelClass, TableInfo table) {
     protected void injectInsertOneSql(boolean selective, Class<?> mapperClass, Class<?> modelClass, TableInfo table) {
-		/*
+        /*
 		 * INSERT INTO table <trim prefix="(" suffix=")" suffixOverrides=",">
 		 * INSERT INTO table <trim prefix="(" suffix=")" suffixOverrides=",">
 		 * <if test="xx != null">xx,</if> </trim> <trim prefix="values ("
 		 * <if test="xx != null">xx,</if> </trim> <trim prefix="values ("
 		 * suffix=")" suffixOverrides=","> <if test="xx != null">#{xx},</if>
 		 * suffix=")" suffixOverrides=","> <if test="xx != null">#{xx},</if>

+ 2 - 2
src/main/java/com/baomidou/mybatisplus/plugins/pagination/dialects/SQLServer2005Dialect.java

@@ -66,8 +66,8 @@ public class SQLServer2005Dialect implements IDialect {
         sql.append("WITH query AS (SELECT ").append(distinctStr).append("TOP 100 PERCENT ")
         sql.append("WITH query AS (SELECT ").append(distinctStr).append("TOP 100 PERCENT ")
                 .append(" ROW_NUMBER() OVER (").append(orderby).append(") as __row_number__, ").append(pagingBuilder)
                 .append(" ROW_NUMBER() OVER (").append(orderby).append(") as __row_number__, ").append(pagingBuilder)
                 .append(") SELECT * FROM query WHERE __row_number__ BETWEEN ")
                 .append(") SELECT * FROM query WHERE __row_number__ BETWEEN ")
-               //FIX#299:原因:mysql中limit 10(offset,size) 是从第10开始(不包含10),;而这里用的BETWEEN是两边都包含,所以改为offset+1
-                .append(offset+1)
+                //FIX#299:原因:mysql中limit 10(offset,size) 是从第10开始(不包含10),;而这里用的BETWEEN是两边都包含,所以改为offset+1
+                .append(offset + 1)
                 .append(" AND ")
                 .append(" AND ")
                 .append(offset + limit).append(" ORDER BY __row_number__");
                 .append(offset + limit).append(" ORDER BY __row_number__");
         return sql.toString();
         return sql.toString();

+ 2 - 2
src/main/java/com/baomidou/mybatisplus/toolkit/GlobalConfigUtils.java

@@ -174,13 +174,13 @@ public class GlobalConfigUtils {
      * @param globalConfig
      * @param globalConfig
      */
      */
     public static void setMetaData(DataSource dataSource, GlobalConfiguration globalConfig) {
     public static void setMetaData(DataSource dataSource, GlobalConfiguration globalConfig) {
-        try(Connection connection = dataSource.getConnection()) {
+        try (Connection connection = dataSource.getConnection()) {
             String jdbcUrl = connection.getMetaData().getURL();
             String jdbcUrl = connection.getMetaData().getURL();
             // 设置全局关键字
             // 设置全局关键字
             globalConfig.setSqlKeywords(connection.getMetaData().getSQLKeywords());
             globalConfig.setSqlKeywords(connection.getMetaData().getSQLKeywords());
             // 自动设置数据库类型
             // 自动设置数据库类型
             globalConfig.setDbType(jdbcUrl);
             globalConfig.setDbType(jdbcUrl);
-        }catch (Exception e){
+        } catch (Exception e) {
             throw new MybatisPlusException("Error: GlobalConfigUtils setMetaData Fail !  Cause:" + e);
             throw new MybatisPlusException("Error: GlobalConfigUtils setMetaData Fail !  Cause:" + e);
         }
         }
     }
     }

+ 59 - 54
src/main/java/com/baomidou/mybatisplus/toolkit/StringUtils.java

@@ -15,7 +15,11 @@
  */
  */
 package com.baomidou.mybatisplus.toolkit;
 package com.baomidou.mybatisplus.toolkit;
 
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
 import java.util.regex.Matcher;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.regex.Pattern;
 
 
@@ -45,7 +49,7 @@ public class StringUtils {
     public static final String PLACE_HOLDER = "{%s}";
     public static final String PLACE_HOLDER = "{%s}";
 
 
     private static boolean separatorBeforeDigit = false;
     private static boolean separatorBeforeDigit = false;
-    private static boolean separatorAfterDigit  = true;
+    private static boolean separatorAfterDigit = true;
 
 
 
 
     private StringUtils() {
     private StringUtils() {
@@ -613,84 +617,85 @@ public class StringUtils {
     /**
     /**
      * 驼峰转连字符
      * 驼峰转连字符
      * <pre>
      * <pre>
-     *     StringUtils.camelToHyphen( "managerAdminUserService" ) = manager-admin-user-service 
-     * </pre> 
-     * @see <a href="https://github.com/krasa/StringManipulation">document</a>
+     *     StringUtils.camelToHyphen( "managerAdminUserService" ) = manager-admin-user-service
+     * </pre>
+     *
      * @param input
      * @param input
      * @return 以'-'分隔
      * @return 以'-'分隔
+     * @see <a href="https://github.com/krasa/StringManipulation">document</a>
      */
      */
     public static String camelToHyphen(String input) {
     public static String camelToHyphen(String input) {
-        return wordsToHyphenCase(wordsAndHyphenAndCamelToConstantCase( input ));
+        return wordsToHyphenCase(wordsAndHyphenAndCamelToConstantCase(input));
     }
     }
-    
-    private static String wordsAndHyphenAndCamelToConstantCase ( String input ) {
+
+    private static String wordsAndHyphenAndCamelToConstantCase(String input) {
         boolean _betweenUpperCases = false;
         boolean _betweenUpperCases = false;
-        boolean containsLowerCase  = containsLowerCase( input );
-
-        StringBuilder buf          = new StringBuilder();
-        char          previousChar = ' ';
-        char[]        chars        = input.toCharArray();
-        for ( int i = 0 ; i < chars.length ; i++ ) {
-            char    c                                 = chars[i];
-            boolean isUpperCaseAndPreviousIsUpperCase = ( Character.isUpperCase( previousChar ) ) && ( Character.isUpperCase(
-                    c ) );
-            boolean isUpperCaseAndPreviousIsLowerCase = ( Character.isLowerCase( previousChar ) ) && ( Character.isUpperCase(
-                    c ) );
-
-            boolean previousIsWhitespace   = Character.isWhitespace( previousChar );
-            boolean lastOneIsNotUnderscore = ( buf.length() > 0 ) && ( buf.charAt( buf.length() - 1 ) != '_' );
-            boolean isNotUnderscore        = c != '_';
-            if ( ( lastOneIsNotUnderscore ) && ( ( isUpperCaseAndPreviousIsLowerCase ) || ( previousIsWhitespace ) || ( ( _betweenUpperCases ) && ( containsLowerCase ) && ( isUpperCaseAndPreviousIsUpperCase ) ) ) ) {
-                buf.append( "_" );
-            } else if ( ( ( separatorAfterDigit ) && ( Character.isDigit( previousChar ) ) && ( Character.isLetter( c ) ) ) || ( ( separatorBeforeDigit ) && ( Character
-                    .isDigit( c ) ) && ( Character.isLetter( previousChar ) ) ) ) {
-                buf.append( '_' );
+        boolean containsLowerCase = containsLowerCase(input);
+
+        StringBuilder buf = new StringBuilder();
+        char previousChar = ' ';
+        char[] chars = input.toCharArray();
+        for (int i = 0; i < chars.length; i++) {
+            char c = chars[i];
+            boolean isUpperCaseAndPreviousIsUpperCase = (Character.isUpperCase(previousChar)) && (Character.isUpperCase(
+                    c));
+            boolean isUpperCaseAndPreviousIsLowerCase = (Character.isLowerCase(previousChar)) && (Character.isUpperCase(
+                    c));
+
+            boolean previousIsWhitespace = Character.isWhitespace(previousChar);
+            boolean lastOneIsNotUnderscore = (buf.length() > 0) && (buf.charAt(buf.length() - 1) != '_');
+            boolean isNotUnderscore = c != '_';
+            if ((lastOneIsNotUnderscore) && ((isUpperCaseAndPreviousIsLowerCase) || (previousIsWhitespace) || ((_betweenUpperCases) && (containsLowerCase) && (isUpperCaseAndPreviousIsUpperCase)))) {
+                buf.append("_");
+            } else if (((separatorAfterDigit) && (Character.isDigit(previousChar)) && (Character.isLetter(c))) || ((separatorBeforeDigit) && (Character
+                    .isDigit(c)) && (Character.isLetter(previousChar)))) {
+                buf.append('_');
             }
             }
-            if ( ( shouldReplace( c ) ) && ( lastOneIsNotUnderscore ) ) {
-                buf.append( '_' );
-            } else if ( ( ! Character.isWhitespace( c ) ) && ( ( isNotUnderscore ) || ( lastOneIsNotUnderscore ) ) ) {
-                buf.append( Character.toUpperCase( c ) );
+            if ((shouldReplace(c)) && (lastOneIsNotUnderscore)) {
+                buf.append('_');
+            } else if ((!Character.isWhitespace(c)) && ((isNotUnderscore) || (lastOneIsNotUnderscore))) {
+                buf.append(Character.toUpperCase(c));
             }
             }
             previousChar = c;
             previousChar = c;
         }
         }
-        if ( Character.isWhitespace( previousChar ) ) {
-            buf.append( "_" );
+        if (Character.isWhitespace(previousChar)) {
+            buf.append("_");
         }
         }
         return buf.toString();
         return buf.toString();
     }
     }
 
 
-    public static boolean containsLowerCase ( String s ) {
-        for ( char c : s.toCharArray() ) {
-            if ( Character.isLowerCase( c ) ) {
+    public static boolean containsLowerCase(String s) {
+        for (char c : s.toCharArray()) {
+            if (Character.isLowerCase(c)) {
                 return true;
                 return true;
             }
             }
         }
         }
         return false;
         return false;
     }
     }
 
 
-    private static boolean shouldReplace ( char c ) {
-        return ( c == '.' ) || ( c == '_' ) || ( c == '-' );
+    private static boolean shouldReplace(char c) {
+        return (c == '.') || (c == '_') || (c == '-');
     }
     }
 
 
-    private static String wordsToHyphenCase ( String s ) {
-        StringBuilder buf      = new StringBuilder();
-        char          lastChar = 'a';
-        for ( char c : s.toCharArray() ) {
-            if ( ( Character.isWhitespace( lastChar ) ) && ( ! Character.isWhitespace( c ) ) && ( '-' != c ) && ( buf.length() > 0 ) && ( buf
-                    .charAt( buf.length() - 1 ) != '-' ) ) {
-                buf.append( "-" );
+    private static String wordsToHyphenCase(String s) {
+        StringBuilder buf = new StringBuilder();
+        char lastChar = 'a';
+        for (char c : s.toCharArray()) {
+            if ((Character.isWhitespace(lastChar)) && (!Character.isWhitespace(c)) && ('-' != c) && (buf.length() > 0) && (buf
+                    .charAt(buf.length() - 1) != '-')) {
+                buf.append("-");
             }
             }
-            if ( '_' == c ) {
-                buf.append( '-' );
-            } else if ( '.' == c ) {
-                buf.append( '-' );
-            } else if ( ! Character.isWhitespace( c ) ) {
-                buf.append( Character.toLowerCase( c ) );
+            if ('_' == c) {
+                buf.append('-');
+            } else if ('.' == c) {
+                buf.append('-');
+            } else if (!Character.isWhitespace(c)) {
+                buf.append(Character.toLowerCase(c));
             }
             }
             lastChar = c;
             lastChar = c;
         }
         }
-        if ( Character.isWhitespace( lastChar ) ) {
-            buf.append( "-" );
+        if (Character.isWhitespace(lastChar)) {
+            buf.append("-");
         }
         }
         return buf.toString();
         return buf.toString();
     }
     }

+ 1 - 1
src/test/java/com/baomidou/mybatisplus/test/EntityWrapperTest.java

@@ -87,7 +87,7 @@ public class EntityWrapperTest {
 
 
     @Test
     @Test
     public void test13() {
     public void test13() {
-		/*
+        /*
 		 * 实体排序
 		 * 实体排序
 		 */
 		 */
         ew.setEntity(new User(1));
         ew.setEntity(new User(1));

+ 11 - 6
src/test/java/com/baomidou/mybatisplus/test/generator/MysqlGenerator.java

@@ -15,20 +15,25 @@
  */
  */
 package com.baomidou.mybatisplus.test.generator;
 package com.baomidou.mybatisplus.test.generator;
 
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 import com.baomidou.mybatisplus.generator.AutoGenerator;
 import com.baomidou.mybatisplus.generator.AutoGenerator;
 import com.baomidou.mybatisplus.generator.InjectionConfig;
 import com.baomidou.mybatisplus.generator.InjectionConfig;
-import com.baomidou.mybatisplus.generator.config.*;
+import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
+import com.baomidou.mybatisplus.generator.config.FileOutConfig;
+import com.baomidou.mybatisplus.generator.config.GlobalConfig;
+import com.baomidou.mybatisplus.generator.config.PackageConfig;
+import com.baomidou.mybatisplus.generator.config.StrategyConfig;
+import com.baomidou.mybatisplus.generator.config.TemplateConfig;
 import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert;
 import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert;
 import com.baomidou.mybatisplus.generator.config.po.TableInfo;
 import com.baomidou.mybatisplus.generator.config.po.TableInfo;
 import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
 import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
 import com.baomidou.mybatisplus.generator.config.rules.DbType;
 import com.baomidou.mybatisplus.generator.config.rules.DbType;
 import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
 import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
 
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
 /**
 /**
  * <p>
  * <p>
  * 代码生成器演示
  * 代码生成器演示

+ 1 - 1
src/test/java/com/baomidou/mybatisplus/test/mysql/UserMapperTest.java

@@ -238,7 +238,7 @@ public class UserMapperTest {
         sleep();
         sleep();
 
 
 		/*
 		/*
-		 * <p> 查询 </p>
+         * <p> 查询 </p>
 		 */
 		 */
         System.err.println("\n------------------selectById----------------------");
         System.err.println("\n------------------selectById----------------------");
         User user = userMapper.selectById(12L);
         User user = userMapper.selectById(12L);