プリペアド ステートメントは Apache DBUtils でどのように使用できますか?
org.apache.commons.dbutils.* のほとんどのメソッドは文字列引数を想定しているようです。PreparedStatements を受け入れるメソッドがないのは驚くべきことです。
プリペアド ステートメントは Apache DBUtils でどのように使用できますか?
org.apache.commons.dbutils.* のほとんどのメソッドは文字列引数を想定しているようです。PreparedStatements を受け入れるメソッドがないのは驚くべきことです。
作例ページより
// Execute the query and get the results back from the handler
Object[] result = run.query(
"SELECT * FROM Person WHERE name=?", h, "John Doe");
これは、PreparedStatement が使用されている必要があることを示します。query メソッドのソースには、
private <T> T query(Connection conn, boolean closeConn, String sql,
ResultSetHandler<T> rsh, Object... params)
...
PreparedStatement stmt = null;
ResultSet rs = null;
T result = null;
try {
stmt = this.prepareStatement(conn, sql);
this.fillStatement(stmt, params);
rs = this.wrap(stmt.executeQuery());
result = rsh.handle(rs);
} catch (SQLException e) {
...
結論? PreparedStatement
使用されているので、まったく心配する必要はありません。