Konvertieren von SQL-Abfrage-Ergebnis in ein array von strings
Mache ich Abfragen, um eine SQLite3-Datenbank, die in Java mit dem SQLiteJDBC (Java JDBC-Treiber für SQLite).
, Wenn ich die SQL-Abfrage SELECT name, pass FROM loginTable WHERE name='%s'; gibt es eine Funktion zum Zurückgeben ODER Wandeln Sie die Namen & übergeben Sie Zeichenfolgen zurückgegeben von der Abfrage in einen String-array oder ArrayList?
Den folgenden code versucht, die Abfragen wieder in einer array-Liste, aber es funktioniert nicht, ich weiß, dass die SQL-Datenbank ist in Ordnung & die Abfrage, die ich machen weil wenn ich das in die Kommandozeile, funktioniert es.
ArrayList <String> result = new ArrayList<String>();
ResultSet rs = stat.executeQuery( "SELECT ..." );
for (int i=0; rs.next(); i++)
{
result.add( rs.getString(i) );
}
Es schlägt fehl, da die Tabelle loginTable hat die Spalten: Index, name, pass. So suchen oben, wenn i=0, & ich gehe, rs.getString(0), wird versucht den string in der Index-Spalte.
Den error-Ausgang wird
java.sql.SQLException: Spalte 0 out of bounds [1,1]
Weiß jemand, wie ich alle Ergebnisse aus einer SQL-query(ResultSet-Objekt) in eine ArrayList oder array?
InformationsquelleAutor Mack | 2011-02-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
In JDBC, die Spalten sind indiziert, beginnend bei 1, nicht 0.
DataReader
hatte, wusste er nicht, dass der JDBC beginnt bei 1Scrum-Meister gleiche gilt für praparedStatement,Sie nie der parameter-o an.
InformationsquelleAutor Shaun
Zum speichern der ersten Zeile werden die Spalten nur, versuchen
Wenn Sie speichern möchten, eine
ArrayList<String[]>
enthält alle Zeilen und alle Spalten:Aktualisiert pro Shaun Antwort
InformationsquelleAutor The Scrum Meister
Dieser arbeitete für mich:
InformationsquelleAutor mir dunaev
Erste, nicht mit einem
for loop
weil du immer nur eine andere Spalte aus jeder Zeile... jedes mal, wenn Sie Trefferrs.next()
geht es in die nächste Zeile, bevor Sie fertig sind, erhalten alle Spaltenwerte aus einer Zeile. Verwenden Sie stattdessenwhile (rs.next())
zu prüfen, für die Zeile Existenz.Zweitens, wie @shaun erwähnt, JDBC Spalten beginnt mit 1, nicht null.
Dritte, um die Daten in einer Liste, die Sie benötigen werden, haben ein POJO, oder eine Bohne an alle, die Informationen aus jeder Zeile.
Also, am Ende, der code kommt gerne so etwas wie dieses:-
InformationsquelleAutor limc
Möchten Sie vielleicht einen Blick auf dieses framework.
http://commons.apache.org/dbutils/
Insbesondere können Sie die Abfrage einer Datenbank und eine arraylist von der Abfrage. Hier ein Beispiel in pseudo-code:
Auch hier ist eine weitere website, verwendet diese:
http://www.stupidjavatricks.com/?p=45
InformationsquelleAutor jluzwick