JDBC ResultSet Columns with Table Aliases
Beim Ausführen einer Abfrage wie „SELECT * from table1 a, table2 b where (WHATEVER)“, Zugriff auf Daten mit „resultSet.getString(“a.columnName“)“ oder „resultSet.getString(“b.columnName“)“ schlägt fehl.
Die JDBC-API befasst sich nicht explizit mit diesem Szenario, sodass es herstellerabhängig ist. Sie können dieses Problem jedoch lösen, indem Sie:
Option 1: Spalten umbenennen
Spalten in der Abfrage mithilfe von Aliasen anders benennen, z. B.:
SELECT a.columnName as columnNameA, b.columnName as columnNameB, ... from table1 a, table2 b where (WHATEVER)
Dann verweisen Sie in Ihrem Java-Code auf diese Aliase:
resultSet.getString("columnNameA"); resultSet.getString("columnNameB");
Option 2: Spaltenposition
Beziehen Sie sich auf Spalten nach Position im Ergebnissatz:
resultSet.getString(1); resultSet.getString(2);
Beachten Sie, dass JDBC eine einsbasierte Indizierung verwendet, beginnend bei 1 für die erste Spalte.
Aus Sicherheits- und Wartbarkeitsgründen wird Option 1 (Spaltenumbenennung) empfohlen. Wenn sich die Spaltenreihenfolge einer Abfrage ändert, bricht Ihr Code automatisch ab, wenn auf die falschen Spalten zugegriffen wird. Im Gegensatz dazu wird beim Ändern von Spaltennamen die Ausnahme „Keine solche Spalte“ ausgelöst, die Sie auf das Problem aufmerksam macht.
Das obige ist der detaillierte Inhalt vonWie greife ich mit Tabellenaliasen auf JDBC-ResultSet-Spalten zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!