2016-04-02 7 views
0

Mein Code:Java SQLite JDBC executeQuery gibt leere ResultSet einer nicht leeren Spalte

Class.forName("org.sqlite.JDBC"); 
Connection C = DriverManager.getConnection("jdbc:sqlite:test.db"); 

Statement S = C.createStatement(); 
S.execute("CREATE TABLE NUMBER (VALUE INT(1))"); 
S.close(); 

S = C.createStatement(); 
S.execute("UPDATE NUMBER SET VALUE = 0"); 
S.close(); 

Statement S = C.createStatement(); 
ResultSet Value = S.executeQuery("SELECT VALUE FROM NUMBER"); 

if(Value.next()) 
{ 

    int Result = Value.getInt("VALUE"); 
    System.out.println("Success"); 

} 
else 
{ 

    System.out.println("Failure"); 

} 

S.close(); 

ich das Ergebnis dieses Codes erwarten würde „Erfolg“, weil es den ganzzahligen Wert 0 aus der abrufen sollte Spalte VALUE in der Tabelle NUMBER. Es wird jedoch stattdessen "Fehler" gedruckt. Ich kann nicht herausfinden, ob dies daran liegt, dass die Tabelle tatsächlich leer ist oder weil sie einfach nicht die Daten oder was bekommen kann. Jede Hilfe wäre willkommen.

Antwort

2

Sie die Ausführung eines UPDATE Statement, sondern in der Reihenfolge der Code präsentiert wird, ist nichts blieb in der Tabelle NUMBER noch, wie die UPDATE Anweisung verwendet wird bestehenden Datensätze in einer Tabelle zu aktualisieren.

Verwenden Sie stattdessen eine INSERT-Anweisung, um Daten zuerst einzufügen, da nur so Tupel in der Tabelle NUMBER erstellt werden. Danach sollte die ResultSet nicht mehr leer sein.

Wenn Sie das Konzept als solches lernen müssen, können Sie sich diese W3Schools guide ansehen.

Verwandte Themen