package com.ideatc.util;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
public class CreateBean {
public static String tableName = "sys_right";// 表名
public static String modelName = "Right";// bean名
public static String packageName = "com.ideatc.bean";
public static ResultSet rs = null;
ResultSetMetaData rsmd = null;
static List<HashMap<String, String>> columns = new ArrayList<HashMap<String, String>>();
public static Connection getConnection() {
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
String url = "jdbc:mysql://192.168.1.100:3306/ideatc?useUnicode=true&characterEncoding=UTF-8";
String user = "dasilu";
String password = "123456";
conn = DriverManager.getConnection(url, user, password);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
public static void closeResultSet(ResultSet rs) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void closeConnection(Connection conn) {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void createModel() {
;
Connection conn = getConnection();
Statement stmt = null;
try {
stmt = conn.createStatement();
rs = stmt.executeQuery("select * from " + tableName);
ResultSetMetaData rsmd = rs.getMetaData();
// class name ==表名称首字母大写
tableName = tableName.toLowerCase();
String tmpPackageName = packageName.replace(".", "/");
File file = new File("src/" + tmpPackageName + "/" + modelName
+ ".java");
StringBuffer sb = new StringBuffer();
// Beginner of class
if (!packageName.equals("")) {
sb.append("package " + packageName + ";\n");
}
sb.append("import java.util.Date;\nimport javax.persistence.Entity;\nimport javax.persistence.GeneratedValue;\nimport javax.persistence.GenerationType;\nimport javax.persistence.Id;\nimport javax.persistence.Table;\n");
// class
sb.append("@Entity\n@Table(name = \"" + tableName + "\")\n");
sb.append("public class " + modelName + "{" + "\n\n");
sb.append("@Id \n"
+ "@GeneratedValue(strategy=GenerationType.AUTO)\n");
for (int i = 1; i <= rsmd.getColumnCount(); i++) {
String type = getTypeName(rsmd.getColumnTypeName(i));
HashMap<String, String> map = new HashMap<String, String>();
map.put(type, rsmd.getColumnName(i).toLowerCase());
columns.add(map);
}
// property
//
for (HashMap<String, String> map : columns) {
for (Iterator<Map.Entry<String, String>> it = map.entrySet()
.iterator(); it.hasNext();) {
Map.Entry<String, String> entry = it.next();
String type = entry.getKey();
String proName = entry.getValue();
sb.append("\tprivate ");
sb.append(type + " " + proName);
sb.append(";");
sb.append("\n");
}
}
// set get method
for (HashMap<String, String> map : columns) {
for (Iterator<Map.Entry<String, String>> it = map.entrySet()
.iterator(); it.hasNext();) {
Map.Entry<String, String> entry = it.next();
String type = entry.getKey();
String proName = entry.getValue();
String proName4Method = proName.substring(0, 1)
.toUpperCase() + proName.substring(1);
sb.append("\n");
// get
sb.append("\tpublic " + type + " get" + proName4Method
+ "(){\n");
sb.append("\t\treturn " + proName + ";\n");
sb.append("\t}\n");
// set
sb.append("\t public " + "void" + " set" + proName4Method
+ "(" + type + " " + proName + "){\n");
sb.append("\t\t");
sb.append("this." + proName + " = " + proName + ";\n");
sb.append("\t}\n");
}
}
sb.append("}");
String str = sb.toString();
BufferedWriter bw = new BufferedWriter(new FileWriter(file));
bw.write(str);
bw.flush();
bw.close();
System.out.println(str);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* @param typeName
* @return
*/
public static String getTypeName(String typeName) {
String typeStr = null;
if (typeName.toLowerCase().trim().equals("varchar")) {
typeStr = "String";
} else if (typeName.toLowerCase().trim().equals("int")) {
typeStr = "int";
} else if (typeName.toLowerCase().trim().equals("char")) {
typeStr = "boolean";
} else if (typeName.toLowerCase().trim().equals("date")) {
typeStr = "Date";
} else {
typeStr = "Object";
}
return typeStr;
}
public static void main(String[] args) {
createModel();
System.out.println("bean creat!!!!!!!!!!!!!!");
}
}