Colonnes JDBC ResultSet avec alias de table
Lors de l'exécution d'une requête telle que "SELECT * from table1 a, table2 b Where (QUOI)", accéder aux données avec "resultSet.getString("a.columnName")" ou "resultSet.getString("b.columnName")" échoue.
L'API JDBC ne traite pas explicitement ce scénario, le laissant dépendant du fournisseur. Cependant, vous pouvez résoudre ce problème en :
Option 1 : Renommer les colonnes
Nommer les colonnes différemment dans la requête à l'aide d'alias, tels que :
SELECT a.columnName as columnNameA, b.columnName as columnNameB, ... from table1 a, table2 b where (WHATEVER)
Référez ensuite ces alias dans votre code Java :
resultSet.getString("columnNameA"); resultSet.getString("columnNameB");
Option 2 : Position de la colonne
Référez-vous aux colonnes par position dans l'ensemble de résultats :
resultSet.getString(1); resultSet.getString(2);
Notez que JDBC utilise une indexation de base un, en commençant par 1 pour la première colonne.
Pour des raisons de sécurité et de maintenabilité, l'Option 1 (Renommage des colonnes) est recommandée. Si l'ordre des colonnes d'une requête change, votre code s'interrompra silencieusement lors de l'accès aux mauvaises colonnes. En revanche, la modification des noms de colonnes déclenchera une exception « aucune colonne de ce type », vous alertant du problème.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!