Java SQL dizesi oluşturmak için en temiz
İstiyorum oluşturmak için bir SQL dize için veritabanı düzenleme (güncelleştirmeleri, siler, ekler, seçer, öyle şeyler) - yerine korkunç bir dize herhangi bir parametre yöntemi kullanarak milyonlarca " "'ler ve tırnak hangisi okunmaz en iyi olmalı daha iyi bir yol.
Yaptım düşün kullanarak MessageFormat - ama gerektiği için kullanılacak kullanıcı mesajları, ancak sanırım bunu yapardı makul bir iş ama sanırım olması gerek ama bir şey daha uyumlu SQL tip operasyonlarda java sql kütüphaneler.
Groovy iyi olurdu?
Herhangi bir yardım çok takdir.
CEVAP
Öncelikle hazırlanan tablolarda sorgu parametreleri kullanarak göz önünde bulundurun:
PreparedStatement stm = c.prepareStatement("UPDATE user_table SET name=? WHERE id=?");
stm.setString(1, "the name");
stm.setInt(2, 345);
stm.executeUpdate();
Yapılabilecek başka bir şey özelliklerinde tüm sorgular dosya tutmak. Örneğin bir sorgular.özellikleri dosya yukarıdaki başvurusunda bulunabilir:
update_query=UPDATE user_table SET name=? WHERE id=?
Basit bir Yardımcı Sınıf yardımıyla sonra:
public class Queries {
private static final String propFileName = "queries.properties";
private static Properties props;
public static Properties getQueries() throws SQLException {
InputStream is =
Queries.class.getResourceAsStream("/" propFileName);
if (is == null){
throw new SQLException("Unable to load property file: " propFileName);
}
//singleton
if(props == null){
props = new Properties();
try {
props.load(is);
} catch (IOException e) {
throw new SQLException("Unable to load property file: " propFileName "\n" e.getMessage());
}
}
return props;
}
public static String getQuery(String query) throws SQLException{
return getQueries().getProperty(query);
}
}
aşağıdaki gibi sorularınıza kullanabilirsiniz
PreparedStatement stm = c.prepareStatement(Queries.getQuery("update_query"));
Bu oldukça basit bir çözümdür, ama iyi çalışıyor.
Nasıl bir dosyanın içeriğini bir Java ...
Nasıl Java genel bir dizi oluşturmak i...
Nasıl bir dosya oluşturmak ve Java ile...
Nasıl UML diyagramları (özellikle sıra...
C bir URL sorgu dizesi oluşturmak için...