我需要推断一个数据库。也就是说,应该显示表名,然后显示表本身以及列名。我做到了,但是结论不是很美。您能告诉我如何使结论更准确吗(列名下的列内容是什么) 这是显示有关数据库信息的代码。
try(Connection conn = getDbConnection("","",dbName)) {
Statement statm = conn.createStatement();
DatabaseMetaData md = conn.getMetaData();
ResultSet resultSet = md.getTables(dbName, null, "%", null);
ResultSetMetaData rsmd = resultSet.getMetaData();
ArrayList<String> listTableName = new ArrayList<>();
while (resultSet.next()) {
listTableName.add(resultSet.getString(3));
}
for(String str : listTableName) {
System.out.println(str);
resultSet = statm.executeQuery("select * from " + str);
rsmd = resultSet.getMetaData();
int columnCount = rsmd.getColumnCount();
System.out.println(columnCount);
for(int i = 1; i <= columnCount;i++)
System.out.print(rsmd.getColumnName(i) + " ");
System.out.println();
String request = "SELECT * FROM " + str;
resultSet = statm.executeQuery(request);
showResultSet(resultSet);
}
} catch (ClassNotFoundException e) {
System.out.println("Error: " + e.getMessage());
}
出:
公司
ID_comp名称
1个Don_avia
2 Aeroflot
3 Dale_avia
4 air_France
5 British_AW