private String packagePath = "com.qy.entity"; //指定实体生成所在包的路径//表名以","分隔;若为"*"则生成所有表的entity文件
private String tableNames = "*";private String authorName = "邱宇"; //作者名字
private static final String DRIVER = "com.mysql.jdbc.Driver";private static final String URL = "jdbc:mysql://localhost:3306/protocol";private static final String NAME = "qy";private static final String PASS = "199526";private boolean f_util = false; //是否需要导入包java.util.*
private boolean f_sql = false; //是否需要导入包java.sql.*
public static voidmain(String[] args) {newCreateEntity();
}publicCreateEntity(){
String[] tables= null;if (this.tableNames=="*") {
tables=getAllTables();
}else{
tables= this.tableNames.split(",");
}for (int i = 0; i < tables.length; i++) {newCreateEntity(tables[i]);
f_util= false;
f_sql= false;
}
}publicCreateEntity(String tableName){
Connection con= null;
PreparedStatement ps= null;
ResultSet rs= null;
DatabaseMetaData dbmd= null;//ResultSetMetaData rsmd= null;
List fmls = new ArrayList();
String sql= "select * from "+tableName;try{
con=getJdbcCon();
dbmd=con.getMetaData();
rs= dbmd.getColumns(con.getCatalog(), null, tableName, null);while(rs.next()) {
FieldMeta fm= newFieldMeta();
fm.setFieldName(rs.getString("COLUMN_NAME"));if (rs.getString("TYPE_NAME").equalsIgnoreCase("datetime")|| rs.getString("TYPE_NAME").equalsIgnoreCase("date")) {
f_util= true;
}if (rs.getString("TYPE_NAME").equalsIgnoreCase("image")|| rs.getString("TYPE_NAME").equalsIgnoreCase("text")) {
f_sql= true;
}
fm.setFieldDataType(rs.getString("TYPE_NAME"));
fm.setFieldLength(Integer.parseInt(rs.getString("COLUMN_SIZE")));
fm.setFieldComment(rs.getString("REMARKS").replace("\r\n", " ")); //注释中的换行改为空格
fmls.add(fm);
}/*从resultSet读取的ResultSetMetaData没有注释等详细信息
ps = con.prepareStatement(sql);
rs = ps.executeQuery();
rsmd = rs.getMetaData();
for (int i = 0; i < rsmd.getColumnCount(); i++) {
FieldMeta fm = new FieldMeta();
fm.setFieldName(rsmd.getColumnName(i+1));
if (rsmd.getColumnTypeName(i+1).equalsIgnoreCase("datetime")) {
f_util = true;
}
if (rsmd.getColumnTypeName(i+1).equalsIgnoreCase("image")
|| rsmd.getColumnTypeName(i+1).equalsIgnoreCase("text")) {
f_sql = true;
}
fm.setFieldDataType(rsmd.getColumnTypeName(i+1));
fm.setFieldLength(rsmd.getColumnDisplaySize(i+1));
//fm.setFieldComment(fieldComment);
fmls.add(fm);
}*/}catch(SQLException e) {
e.printStackTrace();
}finally{if (con!=null) {
closeAll(rs, ps, con,null);
}
}//生成内容
String content =genFrame(fmls,tableName);//System.out.println(content);//写入到文件
wirteToFile(content,this.packagePath,tableName);
}