packagedocs;importjava.io.UnsupportedEncodingException;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.Iterator;importjava.util.List;importjava.util.Map;importjava.util.Set;public classTestTableInfo {private static String url = "jdbc:mysql://xxxx";private static String user = "xxx";private static String pwd = "xxxx";public staticConnection getConnection() {
Connection conn= null;try{
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection(url, user, pwd);
}catch(ClassNotFoundException e) {
e.printStackTrace();
}catch(SQLException e) {
e.printStackTrace();
}returnconn;
}private static Statement stmt = null;private static List tableNameList = new ArrayList();public static Map getCommentByTableName() throwsException {
Map map = new HashMap();for (int i = 0; i < tableNameList.size(); i++) {
String table=(String) tableNameList.get(i);
ResultSet rs= stmt.executeQuery("SHOW CREATE TABLE " +table);if (rs != null &&rs.next()) {
String create= rs.getString(2);
String comment=parse(create);
map.put(table, comment);
}
rs.close();
}returnmap;
}public static void getAllTableName() throwsException {
Connection conn=getConnection();
stmt=conn.createStatement();
ResultSet rs= stmt.executeQuery("SHOW TABLES ");while(rs.next()) {
String tableName= rs.getString(1);
tableNameList.add(tableName);
}
rs.close();
}public staticString parse(String all) {
String comment= null;int index = all.indexOf("COMMENT='");if (index < 0) {return "";
}
comment= all.substring(index + 9);
comment= comment.substring(0, comment.length() - 1);try{
comment= new String(comment.getBytes("utf-8"));
}catch(UnsupportedEncodingException e) {
e.printStackTrace();
}returncomment;
}public static void main(String[] args) throwsException {
getAllTableName();
Map tablesComment =getCommentByTableName();
Set names =tablesComment.keySet();
Iterator iter =names.iterator();while(iter.hasNext()) {
String name=iter.next();
System.out.println("Table Name: " + name + ", Comment: "+tablesComment.get(name));
}
}
}