सबसे पहले तैयार बयानों में क्वेरी पैरामीटर का उपयोग करने पर विचार करें:
PreparedStatement stm = c.prepareStatement("UPDATE user_table SET name=? WHERE id=?");
stm.setString(1, "the name");
stm.setInt(2, 345);
stm.executeUpdate();
दूसरी चीज जो की जा सकती है वह है सभी प्रश्नों को गुण फ़ाइल में रखना। उदाहरण के लिए एक query.properties फ़ाइल में उपरोक्त क्वेरी रखी जा सकती है:
update_query=UPDATE user_table SET name=? WHERE id=?
फिर एक साधारण उपयोगिता वर्ग की मदद से:
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);
}
}
आप अपने प्रश्नों का इस प्रकार उपयोग कर सकते हैं:
PreparedStatement stm = c.prepareStatement(Queries.getQuery("update_query"));
यह एक सरल उपाय है, लेकिन यह अच्छी तरह से काम करता है।