Obtenez toutes les clés externes en utilisant JDBC
j'utilise postgreSQL. J'essaie d'obtenir toutes les clés externes de la table. C'est une méthode que j'utilise actuellement.
Ce code fonctionne, mais cela ne me donne que la dernière clé externe, ce qui est bon s'il n'y a qu'un seul dans la table, mais cela ne correspond pas à mes besoins. Tous les exemples que j'ai consultés sur Internet sont très similaires à ceux-ci et donnent une seule clé externe sous forme de sortie.
Actuellement, je imprime simplement les données lorsque vous appuyez sur le bouton.
3 Obtient la table à partir de laquelle la clé externe a été importée. 4 Renvoie le nom de la colonne de clé primaire importée. 8 Obtient le nom de la colonne de la clé étrangère.
Si quelqu'un peut aider, je serai très reconnaissant.
public String getFKeyData/String tableName, int i/ throws SQLException {
DatabaseMetaData dm = connection.getMetaData//;
ResultSet rs = dm.getImportedKeys/null, null, tableName/;
while /rs.next/// {
fkTableData = rs.getString/i/;
}
return fkTableData;
}
Ce code fonctionne, mais cela ne me donne que la dernière clé externe, ce qui est bon s'il n'y a qu'un seul dans la table, mais cela ne correspond pas à mes besoins. Tous les exemples que j'ai consultés sur Internet sont très similaires à ceux-ci et donnent une seule clé externe sous forme de sortie.
Actuellement, je imprime simplement les données lorsque vous appuyez sur le bouton.
System.out.println/databaseConnection.getFKeyData/tableName,3//;
System.out.println/databaseConnection.getFKeyData/tableName,4//;
System.out.println/databaseConnection.getFKeyData/tableName,8//;
3 Obtient la table à partir de laquelle la clé externe a été importée. 4 Renvoie le nom de la colonne de clé primaire importée. 8 Obtient le nom de la colonne de la clé étrangère.
Si quelqu'un peut aider, je serai très reconnaissant.
Aucun résultat connexe trouvé
Invité:
Pour répondre aux questions, connectez-vous ou registre
1 réponses
Charles
Confirmation de:
, La fonction ne renvoie que la dernière colonne de la restriction FK, Parce que sur chaque itération, vous écrasez la valeur de l'itération précédente /
/. Btw: `fkTableData En fait, il doit y avoir une méthode de variable locale, et non une copie variable.
Votre fonction doit revenir a
, mais non a
.
Aussi: vous appelez
une
Une fois pour chaque colonne
à ResultSet. C'est extrêmement inefficace. Si vous avez utilisé Oracle, Vous remarqueriez immédiatement cela, car l'extraction de l'information FK Il y a extrêmement lent /Postgres Beaucoup plus rapide lorsque vous accédez à des catalogues système/.
Dans la mesure où
Retourne une ligne pour chaque
colonne
FK, Vous devez également collecter toutes les lignes appartenant à une définition des limitations. /C'est-à-dire pour une combinaison de tables parentales et d'enfants/.
Il serait probablement préférable de déterminer la classe
, qui stocke toutes les colonnes les colonnes et les noms de table, et rendez votre fonction retour
, Pour éviter de multiples appels vers la même ligne de l'ensemble résultant.
</pkdefinition></string>