1.自动获取数据库表,创建实体类
public class DomainAutoCreate {
private String tablename = "TABLE_NAME";
private String packagename = "com.qmy.domain;";
private String classname = "Domain";
private String[] colnames;
private String[] colTypes;
private int[] colSizes;
private boolean f_util = false;
private boolean f_math = false;
public static void main(String[] args) {
new DomainAutoCreate();
}
public DomainAutoCreate() {
Connection conn = DBUtil.getConnection();
PreparedStatement ps = null;
ResultSetMetaData rs = null;
String strsql = "SELECT * FROM " + tablename;
try {
ps = conn.prepareStatement(strsql);
ResultSet rs2 = ps.executeQuery();
rs = rs2.getMetaData();
int size = rs.getColumnCount();
colnames = new String[size];
colTypes = new String[size];
colSizes = new int[size];
for (int i = 0; i < rs.getColumnCount(); i++) {
colnames[i] = rs.getColumnName(i + 1).toLowerCase();
colTypes[i] = rs.getColumnTypeName(i + 1).toUpperCase();
if (colTypes[i].equalsIgnoreCase("DATETIME") || colTypes[i].equalsIgnoreCase("DATE")
|| colTypes[i].equalsIgnoreCase("SMALLDATETIME") || colTypes[i].equalsIgnoreCase("TIME")) {
f_util = true;
}
if (colTypes[i].equalsIgnoreCase("MONEY") || colTypes[i].equalsIgnoreCase("DECIMAL")
|| colTypes[i].equalsIgnoreCase("SMALLMONEY") || colTypes[i].equalsIgnoreCase("NUMERIC")) {
f_math = true;
}
colSizes[i] = rs.getColumnDisplaySize(i + 1);
}
String content = parse(colnames, colTypes, colSizes, packagename);
FileWriter fileWriter = new FileWriter(initcap(tablename.toLowerCase()) + ".java");
PrintWriter pw = new PrintWriter(fileWriter);
pw.println(content);
pw.flush();
pw.close();
} catch (SQLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
ps.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
private String parse(String[] colNames, String[] colTypes, int[] colSizes, String packagename) {
StringBuffer sb = new StringBuffer();
sb.append("package " + packagename + "\r\n\n");
if (f_util) {
sb.append("import java.util.Date;\r\n\n");
}
if (f_math) {
sb.append("import java.math.BigDecimal;\r\n\n");
}
sb.append("public class " + initcap(classname) + " {\r\n");
for (int i = 0; i < colnames.length; i++) {
sb.append("\tprivate " + sqlTypeToJavaType(colTypes[i]) + " " + colnames[i] + ";\r\n");
}
sb.append("\n\n");
for