2016-04-07 7 views
1

Bunu çözmek için çok zaman harcadım, bu nedenle yardımlarınız için teşekkür ederiz. Hazırlamada dizi nasıl kullanılır? Ben bu örnekte How to use an arraylist as a prepared statement parameter gibi bunu ama bana hata döndürür, kodumu:Tek bir PrepareStatement (sqlite) içinde Array veya List <> nasıl kullanılır?

 //initialize 
     ResultSet rs2; 
     connection2 = sqliteConnection.dbConnector(); 
     PreparedStatement statement2=connection2.prepareStatement("SELECT surname FROM users where id IN (?)"); 

     //like in the example linked, but it did not work: 
     Array array = connection2.createArrayOf("VARCHAR", new Object[]{"1", "2"}); 
     statement2.setArray(1, array); 
     rs2=statement2.executeQuery(); 

     //to keep data from resultset, it works fine 
     List<String> rsDATA = new ArrayList<String>(); 
     while(rs2.next()){ 
      rsDATA.add(rs2.getString("surname")); 
     } 
     for(int i = 0; i < rsDATA.size(); i++) { 
      System.out.println(rsDATA.get(i)); 
     } 
     connection.close(); 

ama hata döndürür: çok önemlidir

Exception in thread "AWT-EventQueue-0" java.lang.AbstractMethodError: org.sqlite.SQLiteConnection.createArrayOf(Ljava/lang/String;[Ljava/lang/Object;)Ljava/sql/Array; 
at lines: 

1)Array array = connection2.createArrayOf("VARCHAR", new Object[]{"1", "2"}); 
2(executeQuery(); 

bana bu çözmek için. Çok teşekkür ederim ..

cevap

0

Sen WHERE fıkrada IN kullanmak gerekir:

SELECT surname FROM users WHERE id IN (?) 

ve java.sql.Array bağlantılı nesneyi sorunun cevabı gösterildiği gibi.

+0

Beni ima ediyormuş gibi yaptım, ama gördüğünüz gibi hala hata veriyor, nasıl değişebilir? Bununla ne yapabilirim? – arkani

+0

@arkani sizin sqlite JDBC sürücünüz muhtemelen modası geçmiş, bkz. Http://stackoverflow.com/questions/16408591/java-lang-abstractmethoderror-org-sqlite-conn-createarrayof-error-while-calling. Ancak bu cevapta belirtildiği gibi, sqlite 'java.sql.Array' uygulamasına sahip olmayabilir. – wero

+0

Gerçek, sqlite java.sql.Array uygulamasına sahip değil. Yani bunu yapmak için başka bir yolu var mı? Bu büyük bir projedir ve jdbc değiştiremiyorum .. Can deyimi dizi sorunu atlamak için bazı döngü ile yapılabilir? – arkani

İlgili konular