結果セットを表示するために使用しているデフォルトのテーブルモデルを持つ 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 ステートメントによってモデルに追加されるため、これはばかげていることがわかりました。誰もこれを回避する方法を知っていますか?