Ich habe zwei Tabellen, die ich der ID-Spalte beifüge, sie sehen so aus:
%Vor%Und jetzt möchte ich alle Beiträge auswählen und den Benutzernamen mit einschließen:
%Vor%Und dann versuche ich, die Werte mit:
zu bekommen %Vor% Aber ich bekomme SQLException
beim Ausführen von rs.getInt("posts.id")
:
Wie kann ich die Werte aus der obigen SQL-Abfrage mithilfe von JDBC und JavaDB / Derby als Datenbank abrufen?
Wie kann ich die Spalte id
in der Tabelle users
und posts
beim Abrufen von Werten mit ResultSet
unterscheiden?
Sie versuchen, den Wert id
abzurufen, aber Sie verwenden "posts.id", um darauf zu verweisen. Nicht
Alles was Sie brauchen ist der Spaltenname oder Alias, nicht auch der Tabellenname:
%Vor%Es hätte funktioniert, wenn Ihr Spaltenname selbst "posts.id" wäre, aber ich empfehle, einen Unterstrich (_) anstelle eines Punktes zu verwenden, wenn Sie die Tabelle aktualisieren möchten.
Sie müssen einen Spaltenalias angeben:
%Vor%... und referenziere diesen Spaltenalias im Java-Code:
%Vor%Wie kann ich die Werte aus der obigen SQL-Abfrage mit JDBC und JavaDB / Derby als Datenbank abrufen?
Um Werte zu erhalten, sollten Sie den Spaltennamen ResultSet
verwenden. Der in ResultSet
verwendete Spaltenname ist der ursprüngliche Spaltenname oder der Alias.
Wenn Ihr ResultSet
Spalten mit demselben Namen oder Alias enthält, gibt getInt()
die erste Übereinstimmung zurück.
Mit Ihrer Auswahl ...
%Vor% ... das rs.getInt()
gibt nur das posts.id
zurück, da es die erste Spalte ist.
Wie kann ich beim Abrufen von Werten mit ResultSet die ID-Spalte in der Tabelle "users and posts" unterscheiden?
Sie können für jede Spalte einen eindeutigen Alias verwenden oder den ResultSetMetaData
SQL
%Vor%Java
%Vor%ResultSetMetaData
SQL
%Vor%Java
%Vor%Sie können diese weiter vereinfachen, indem Sie die Daten gemäß dem Spaltenindex abrufen, anstatt sie nach dem Spaltennamen zu erhalten. Daten, die wir aus der DB abrufen, werden in der Ergebnisreihenfolge in der Spaltenreihenfolge wie in der SELECT-Anweisung gespeichert. Anstatt die Daten gemäß dem Spaltennamen abzurufen, werden die Daten gemäß Spaltenindex in der Ergebnismenge bevorzugt.
ex:
%Vor%Dies wird Ihnen helfen, Komplexität und Verwirrung zu beseitigen, die durch ähnliche Spaltennamen in Ihren Datenbanktabellen verursacht werden.
Hoffe, das hilft ...
Alles Gute .. !!