소스 검색

优化代码生成

jobob 9 년 전
부모
커밋
c84682a163

+ 37 - 7
mybatis-plus/src/main/java/com/baomidou/mybatisplus/generator/AutoGenerator.java

@@ -15,15 +15,27 @@
  */
 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.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 import com.baomidou.mybatisplus.annotations.IdType;
 import com.baomidou.mybatisplus.exceptions.MybatisPlusException;
 import com.baomidou.mybatisplus.toolkit.DBKeywordsProcessor;
 import com.baomidou.mybatisplus.toolkit.StringUtils;
 
-import java.io.*;
-import java.sql.*;
-import java.util.*;
-
 /**
  * <p>
  * 映射文件自动生成类
@@ -854,17 +866,35 @@ public class AutoGenerator {
 		bw.newLine();
 		bw.write("\t<sql id=\"Base_Column_List\">");
 		bw.newLine();
-
+		bw.write("\t\t");
+		/*
+		 * 公共字段
+		 */
+		if (null != config.getConfigBaseEntity()) {
+			for (String column : config.getConfigBaseEntity().getColumns()) {
+				bw.write(DBKeywordsProcessor.convert(column));
+				if (column.contains("_")) {
+					bw.write(" AS " + processField(column));
+				}
+				bw.write(", ");
+			}
+		}
+		/**
+		 * 个性字段
+		 */
 		for (int i = 0; i < size; i++) {
 			String column = columns.get(i);
 			IdInfo idInfo = idMap.get(column);
 			if (idInfo != null) {
-				bw.write("\t\t " + DBKeywordsProcessor.convert(idInfo.getValue()));
+				bw.write(DBKeywordsProcessor.convert(idInfo.getValue()));
 				if (idInfo.getValue().contains("_")) {
 					bw.write(" AS " + processField(idInfo.getValue()));
 				}
 			} else {
-				bw.write(" " + DBKeywordsProcessor.convert(column));
+				if (null == config.getConfigBaseEntity()) {
+					bw.write(" ");
+				}
+				bw.write(DBKeywordsProcessor.convert(column));
 				if (column.contains("_")) {
 					bw.write(" AS " + processField(column));
 				}

+ 4 - 1
mybatis-plus/src/main/java/com/baomidou/mybatisplus/generator/ConfigBaseEntity.java

@@ -62,7 +62,10 @@ public class ConfigBaseEntity {
 	}
 
 	public String getPackageName() {
-		return packageName;
+		if (StringUtils.isNotEmpty(packageName)) {
+			return packageName + "." + className;
+		}
+		return null;
 	}
 
 	public void setPackageName(String packageName) {

+ 2 - 0
mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/ConfigGeneratorTest.java

@@ -87,6 +87,8 @@ public class ConfigGeneratorTest {
 		 * 自定义 BaseEntity
 		 */
 //		ConfigBaseEntity cbe = new ConfigBaseEntity();
+//		cbe.setPackageName("com.baomidou.test");
+//		cbe.setClassName("BaseEntity");
 //		cbe.setColumns(new String[]{"test_id", "age", "createTime"});
 //		cg.setConfigBaseEntity(cbe);
 		return cg;