MainGenerateEntity.java
3.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
package com.taover.codegenerate.db;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import java.util.Vector;
/*
* 如果列是自增长;在数据库描述中需要进行如下描述seq|属性描述
* 不支持联合主键
* 同时如果有自己的sequence 则命名规则如下:
* "SEQ_" + TableSchema + "_" + TableName + "_" + ColumnName
* SEQ_schame_tablename(SEQ_EGROCERY_DEVEL_SS_SKU_SKU_ID)
*
*/
public class MainGenerateEntity {
public static void main(String[] args) throws Exception{
//读取配置文件
Properties properties = Tools.getProperties();
//取数据库连接
Connection conn = Tools.getConnection(properties);
//初始化要生成的表列表
List<String> tableNameList = new ArrayList<String>();
String outputPath = properties.getProperty("OutputPath");
String schameName = properties.getProperty("SchameName");
String createSchame = properties.getProperty("CreateSchame");
String dbLikeStr = properties.getProperty("DBLikeStr");
String dbType = properties.getProperty("dbtype");
String dbPackagePath = properties.getProperty("packageName");
String tableName = properties.getProperty("TableName");
if("mysql".equalsIgnoreCase(dbType)){
//schameName = schameName.toUpperCase();
}
if (createSchame.equalsIgnoreCase("true") || "ALL".equalsIgnoreCase(tableName) ) {
String sql = "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '"+schameName+"'";
ResultSet rs = Tools.executeQuery(Tools.createStmt(conn), sql);
if (null == rs)
return ;
List<String> result = new ArrayList<String>();
try {
while (rs.next()) {
tableNameList.add(rs.getString("Table_name"));
}
} catch (SQLException e) {
e.printStackTrace();
result = null;
}
Tools.close(rs);
} else {
if("mysql".equalsIgnoreCase(dbType)){
// tableName = tableName.toUpperCase();
}
String[] TableNameArr = tableName.split(",");
for (int i = 0; i < TableNameArr.length; i++)
tableNameList.add(TableNameArr[i]);
}
for (int i = 0; i < tableNameList.size(); i++) {
String tableNameCurr = (String) tableNameList.get(i);
// 取得表中所有列
Vector<TableColumn> columnsInTable = TableColumn.GetTableInfo(conn, null, tableNameCurr, dbLikeStr, dbType);
if (columnsInTable == null || columnsInTable.size() == 0) {
System.out.println(tableNameCurr + " : 生成失败,得不到表中列明");
continue;
}
TableColumn pkcolum = TableColumn.getPKColum(columnsInTable);
if (pkcolum == null) {
System.out.println(tableNameCurr + " : 生成失败,未设置主键");
continue;
}
// 生成po类
GenerateEntity.generateEntity(schameName, outputPath, dbPackagePath, columnsInTable);
System.out.println(tableNameCurr + " : 生成结束");
}
conn.close();
System.out.println("全部结束");
}
}