2016-03-29 12 views
-1

Veri girişini kullanıcı tarafından girilen değerleri kullanarak almak istiyorum. Değerler, uid adlı dizide saklanır. Kod derleniyor ancak yazdırma sonuçları değil. stmt.setInt(1,i); okumalısınız kesinHazırlanan deyimi kullanarak sorguyu seç ve kullanıcı tarafından alınan değerleri ayarlama

public static void main(String[] args) { 

Connection conn = null; 

PreparedStatement stmt = null; 
ResultSet rs=null; 
try{ 
    Class.forName("com.mysql.jdbc.Driver"); 
    conn = DriverManager.getConnection(DB_URL,USER,PASS); 
    String sql1="SELECT * FROM user_ratings WHERE user_id = ?"; 
    stmt = conn.prepareStatement(sql1); 
    for (int i:uid) 
    { 
    stmt.clearParameters(); 
    stmt.setInt(1,uid[i]); 

    rs=stmt.executeQuery(); 
    while(rs.next()) 
    { 
    int id = rs.getInt("user_id"); 
    int mid = rs.getInt("movie_id"); 
    int first = rs.getInt("movie_rating"); 
    int second = rs.getInt("acting"); 
    int third = rs.getInt("visuals"); 
    System.out.print("User ID: " +id); 
    System.out.print(", Movie ID: " +mid); 
    System.out.print(", First: " +first); 
    System.out.println(", Second: " +second); 
    System.out.println(", Third:" +third); 
    } 
    } 
    } 
+0

UID'nin herhangi bir değeri olduğundan emin misiniz? UID'nin uzunluğunu kontrol et. – antorqs

+0

Kodu ayıklamadınız mı? herhangi bir sorgu sonucu var mı? – Breeze

+0

uid aşağıdaki değerlere sahiptir: uid = {3,4,12,13,14,17,19,20,21,24}; – Aparna

cevap

3

İfadende stmt.setInt(1,uid[i]);.

Zaten bunu yineliyorsunuz? uid dizisi ve for (int i:uid) kullanımı nedeniyle her bir değer i tarafından kullanılabilir.

+0

Denedim. Hala hiçbir sonuç almadı. – Aparna

+0

Bir hata meydana gelmeden mi? Ve hata ayıklayıcı şüpheli bir şey ortaya çıkarmıyor mu? Sonra kısıtlanmamış sorguyu denerdim: SELECT * FROM user_ratings'. Bu, tablo verisini döndürürse, sabit bir ifade kullanarak deneyin. SELECT * FROM user_ratings WHERE user_id = 3'. İlk önce başarısız olursa, erişim ile ilgili herhangi bir şey kontrol edin (KULLANICI, PASS, KULLANICININ ayrıcalıkları ...). Eğer seond kontrolü de işe yaradıysa, o zaman hazırlanmış olan 'setInt()' deyimi ile hangi değerlerin kullanıldığını kontrol edin (ancak bunu zaten hata ayıklayıcı oturumlarınızdan görmüş olmalısınız.) – rpy

+0

Teşekkür ederim. İkinci kontrol sorunu bulmama yardımcı oldu. ExecuteQuery() 'de herhangi bir parametre geçmek zorunda değildim; – Aparna