Tuesday, February 09, 2010

JAVA PreparedStatement with IN clause

JAVA PreparedStatement with IN clause

//two private methods.
private String phbuilder(int length) {
StringBuilder b = new StringBuilder();
for (int i = 0; i < length;) {
b.append("?");
if (++i < length) b.append(",");
}
return b.toString();
}

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


Usage

String sql = String.format("SELECT * FROM others_pocket WHERE id IN (%s)", phbuilder(ids.size()));
....
statement = connection.prepareStatement(sql);
setValues(statement, ids.toArray());
resultSet = statement.executeQuery();


For other alternatives pls take a look here

No comments: