Browse Source

Merge branch 'master' of git@gitee.com:jfinal/jfinal.git

James 7 years ago
parent
commit
0f4fadcdce

+ 36 - 1
src/main/java/com/jfinal/plugin/activerecord/generator/MetaBuilder.java

@@ -24,10 +24,14 @@ import java.sql.SQLException;
 import java.sql.Statement;
 import java.sql.Statement;
 import java.sql.Types;
 import java.sql.Types;
 import java.util.ArrayList;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 import java.util.Set;
 import java.util.TreeSet;
 import java.util.TreeSet;
+
 import javax.sql.DataSource;
 import javax.sql.DataSource;
+
 import com.jfinal.kit.StrKit;
 import com.jfinal.kit.StrKit;
 import com.jfinal.plugin.activerecord.dialect.Dialect;
 import com.jfinal.plugin.activerecord.dialect.Dialect;
 import com.jfinal.plugin.activerecord.dialect.MysqlDialect;
 import com.jfinal.plugin.activerecord.dialect.MysqlDialect;
@@ -236,8 +240,33 @@ public class MetaBuilder {
 		Statement stm = conn.createStatement();
 		Statement stm = conn.createStatement();
 		ResultSet rs = stm.executeQuery(sql);
 		ResultSet rs = stm.executeQuery(sql);
 		ResultSetMetaData rsmd = rs.getMetaData();
 		ResultSetMetaData rsmd = rs.getMetaData();
+		int count = rsmd.getColumnCount();
+		
+		
+		DatabaseMetaData dbMeta = conn.getMetaData();
 		
 		
-		for (int i=1; i<=rsmd.getColumnCount(); i++) {
+		
+		Map<String, ColumnMeta> colmap = new HashMap<>();
+		ResultSet colMetaRs = null;
+		try {
+			colMetaRs = dbMeta.getColumns(null, null, tableMeta.name, null);
+			while (colMetaRs.next()) {
+				ColumnMeta columnMeta = new ColumnMeta();
+				columnMeta.name = colMetaRs.getString(4);
+				columnMeta.remarks = colMetaRs.getString(12);
+				colmap.put(columnMeta.name, columnMeta);
+			}
+			
+		} catch (Exception e) {
+			System.out.println(e.getMessage());
+		} finally {
+			if (colMetaRs != null) {
+				colMetaRs.close();
+			}
+		}
+
+		
+		for (int i=1; i<=count; i++) {
 			ColumnMeta cm = new ColumnMeta();
 			ColumnMeta cm = new ColumnMeta();
 			cm.name = rsmd.getColumnName(i);
 			cm.name = rsmd.getColumnName(i);
 			
 			
@@ -283,6 +312,12 @@ public class MetaBuilder {
 			// 构造字段对应的属性名 attrName
 			// 构造字段对应的属性名 attrName
 			cm.attrName = buildAttrName(cm.name);
 			cm.attrName = buildAttrName(cm.name);
 			
 			
+			ColumnMeta cm1 = colmap.get(cm.name);
+			if (cm1 != null) {
+				cm.remarks = cm1.remarks;
+			}
+
+			
 			tableMeta.columnMetas.add(cm);
 			tableMeta.columnMetas.add(cm);
 		}
 		}
 		
 		

+ 6 - 0
src/main/java/com/jfinal/plugin/activerecord/generator/base_model_template.jf

@@ -16,6 +16,9 @@ public abstract class #(tableMeta.baseModelName)<M extends #(tableMeta.baseModel
 #set(b = generateChainSetter)
 #set(b = generateChainSetter)
 #for(cm : tableMeta.columnMetas)
 #for(cm : tableMeta.columnMetas)
 	#set(argName = javaKeyword.contains(cm.attrName) ? '_' + cm.attrName : cm.attrName)
 	#set(argName = javaKeyword.contains(cm.attrName) ? '_' + cm.attrName : cm.attrName)
+	/**
+	 * #(cm.remarks)
+	 */
 	public #(b ? 'M' : 'void') set#(firstCharToUpperCase(cm.attrName))(#(cm.javaType) #(argName)) {
 	public #(b ? 'M' : 'void') set#(firstCharToUpperCase(cm.attrName))(#(cm.javaType) #(argName)) {
 		set("#(cm.name)", #(argName));
 		set("#(cm.name)", #(argName));
 		#if (b)
 		#if (b)
@@ -23,6 +26,9 @@ public abstract class #(tableMeta.baseModelName)<M extends #(tableMeta.baseModel
 		#end
 		#end
 	}
 	}
 	
 	
+	/**
+	 * #(cm.remarks)
+	 */
 	#set(getterOfModel = getterTypeMap.get(cm.javaType))
 	#set(getterOfModel = getterTypeMap.get(cm.javaType))
 	#if (isBlank(getterOfModel))
 	#if (isBlank(getterOfModel))
 		#set(getterOfModel = 'get')
 		#set(getterOfModel = 'get')