2010-04-01 18 views
9

Sınıf için bir grup projesi üzerinde çalışıyorum ve CheckStyle'ı deniyoruz.JDBC sorgularında CheckStyle sihirli sayı hatalarını engellemek

Java ile oldukça rahatım ama JDBC'ye hiç dokunmadım ya da bundan önce herhangi bir veritabanı çalışması yaptım.

PreparedStatement çağırır sihirli sayı hatalarını önlemek için zarif bir yolu olup olmadığını merak ediyorum

, düşünün : yöntemler sihirli sayı olarak işaretlendiğini setString, şimdiye kadar sadece sayıları eklendi

 preparedStatement = connect.prepareStatement("INSERT INTO shows " 
       + "(showid, showtitle, showinfo, genre, youtube)" 
       + "values (default, ?, ?, ?, ?);"); 
     preparedStatement.setString(1, title); 
     preparedStatement.setString(2, info); 
     preparedStatement.setString(3, genre); 
     preparedStatement.setString(4, youtube); 
     result = preparedStatement.executeUpdate(); 

3-10 ya da öylesine sihirli sayılar için göz ardı edilen listeye bakın ama bu değerleri ifadeye eklemenin daha iyi bir yolu olup olmadığını merak ediyorum. Ayrıca, bu kodu görmeyi akla getiren başka bir tavsiye için size yalvarıyorum, kötü alışkanlıklar geliştirmekten kaçınmak istiyorum, ör. Açıklama kullanmalı mıyım yoksa Hazır mıDaha iyi mi? Bunun yerine sütun isimlerine başvurmama izin verecek mi? Bu ideal mi? vb ...

Teşekkürler!

+0

Yan not olarak, verileri alırken sihirli sayılardan nasıl kaçınacağınızı bilmek de yararlı olacaktır - yani getString() vb. –

cevap

12

böyle bir şey yapar bir yardımcı program yöntemi oluşturun:

public static void setValues(PreparedStatement preparedStatement, Object... values) throws SQLException { 
    for (int i = 0; i < values.length; i++) { 
     preparedStatement.setObject(i + 1, values[i]); 
    } 
} 

Ve aşağıdaki gibi kullanın:

setValues(preparedStatement, title, info, genre, youtube); 

veya

Object[] values = { 
    title, info, genre, youtube 
}; 

setValues(preparedStatement, values); 

fazlası "en iyi uygulamalar" konusunda temel JDBC kodlaması this article'da bulunabilir.

Bu yardımcı olur umarım.

+0

Mükemmel, çok teşekkür ederim! – Dan

İlgili konular