我有一个带有默认表模型的 JTable,我用它来显示结果集。我正在使用 postgreSQL。我试图让表排除主键和外键。到目前为止,我已经排除了主键,但我没有成功排除外键。
这就是我获取外键的方式:
public List<String> getFKeyData(String tableName, int i) throws SQLException {
DatabaseMetaData dm = connection.getMetaData();
ResultSet rs = dm.getImportedKeys(null, null, tableName);
ArrayList<String> fkTableData = new ArrayList<>();
while (rs.next()) {
fkTableData.add(rs.getString(i));
}
return fkTableData;
}
这就是我最初认为排除外键的方式:
int fkSize = databaseConnection.getFKeyData(tableName, 8).size();
for (int i = 0; i <= fkSize - 1; i++) {
if (databaseConnection.getColumnNames(tableName).indexOf(databaseConnection.getFKeyData(tableName, 8).get(i)) == 1) {
if (databaseConnection.getColumnNames(tableName).indexOf(databaseConnection.getPKey(tableName)) != 1) {
if (databaseConnection.getColCount(tableName) >= 1) {
model.addColumn(columnNamesV.get(1), cellData1);
}
}
}
}
我现在意识到这是愚蠢的,因为尽管它确实排除了外键,但它仍然通过 for 语句添加到模型中。有谁知道解决这个问题的方法?