2016-04-02 13 views
0

Kodum: ondan tamsayı değeri 0 almak gerekir, çünkü "Başarı" olacağını bu kodun sonucunu beklediğinizJava SQLite JDBC executeQuery boş olmayan bir sütunun boş ResultSet döner

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(); 

NUMBER numaralı tabloda VALUE sütunu. Bununla birlikte, bunun yerine "Arıza" yazdırır. Bunun nedenini anlayamıyorum çünkü tablo aslında boş ya da veri ya da ne elde edemediği için. Herhangi bir yardım takdir edilecektir.

cevap

2

Bir UPDATE Beyanı yürütme, ancak UPDATE ifadesi, bir tablodaki mevcut kayıtları güncellemek için kullanılır olarak kod sunulmuştur sırayla, hiçbir şey, henüz Tablo NUMBER kalıcıdır.

Bir INSERT Açıklama ifadesini kullanın, bu nedenle önce verileri ekleyerek, bu şekilde yalnızca NUMBER tablosunda oluşturulmuş tupl'ler oluşturun. Daha sonra, ResultSet artık boş bırakılmamalıdır.

Kavramını böyle öğrenmeniz gerekiyorsa, bu W3Schools guide numaralı telefonu inceleyebilirsiniz.