一、获取Connection
public static Connection getConnect() {
Connection con = null;
try {
Class.forName("org.postgresql.Driver");
con = DriverManager.getConnection(url, name, password);
} catch (Exception e) {
e.printStackTrace();
}
return con;
}
二、获取表信息和列信息
try {
Connection con = getConnect();
DatabaseMetaData metaData = con.getMetaData();
ResultSet resultSet = metaData.getTables(null, "%", "%", new String[] { "TABLE" });
while (resultSet.next()) {
String tableName = resultSet.getString("TABLE_NAME");
if ("tb_sm_module".equals(tableName)) {
ResultSet resultCol = metaData.getColumns(null, "%", tableName, "%");
while (resultCol.next()) {
String columnName = resultCol.getString("COLUMN_NAME");
String columnType = resultCol.getString("TYPE_NAME");
int datasize = resultCol.getInt("COLUMN_SIZE");
int digits = resultCol.getInt("DECIMAL_DIGITS");
int nullable = resultCol.getInt("NULLABLE");
System.out.println(columnName + " " + columnType + " " + datasize + " " + digits + " " + nullable);
}
}
}
} catch (SQLException e) {
e.printStackTrace();
}
三、获取主键信息
ResultSet pkRSet = metaData.getPrimaryKeys(null, null, tableName);
while (pkRSet.next()) {
pkRSet.getString("COLUMN_NAME");
}