1

プリペアド ステートメントは Apache DBUtils でどのように使用できますか?

org.apache.commons.dbutils.* のほとんどのメソッドは文字列引数を想定しているようです。PreparedStatements を受け入れるメソッドがないのは驚くべきことです。

4

2 に答える 2

2

作例ページより

// 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使用されているので、まったく心配する必要はありません。

于 2013-04-10T13:11:16.403 に答える