String connString = "jdbc:mysql://" + dbCfg.getHost()
+ "/" + dbCfg.getDb()
+ "?user=" + dbCfg.getUser()
+ "&password=" + dbCfg.getPassword();
TableDm tab = new TableDm();
tab.setName(dbCfg.getDb() + "." +tableName);
tab.setTableName(tableName);
tab.setDbType("MYSQL");
//tab.setDesc(desc);
ArrayList<FieldDm> fields = new ArrayList<FieldDm>();
ArrayList<FieldDm> pks = new ArrayList<FieldDm>();
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conn = DriverManager.getConnection(connString);
String sql = "select TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, IS_NULLABLE, DATA_TYPE, COLUMN_TYPE, COLUMN_KEY, EXTRA, COLUMN_COMMENT from INFORMATION_SCHEMA.COLUMNS where table_name='"
+ tableName.trim() + "' AND "
+ "TABLE_SCHEMA = '" + dbCfg.getDb() + "'";
Statement smt = conn.createStatement();
ResultSet rs = smt.executeQuery(sql);
while(rs.next()){
FieldDm field = new FieldDm();
field.setName(rs.getString("COLUMN_NAME"));
field.setDataType(rs.getString("DATA_TYPE"));
field.setNn((rs.getString("IS_NULLABLE").equals("YES")? true: false));
field.setAi((rs.getString("EXTRA").equals("auto_increment")?true:false));
field.setNote(rs.getString("COLUMN_COMMENT"));
fields.add(field);
if(rs.getString("COLUMN_KEY").equals("PRI")){
pks.add(field);
}
}
tab.setPks(pks);
tab.setFields(fields);
rs.close();
smt.close();
conn.close();