我有一个适用于所有 DAO 的公共(public)类,我们将在其中读取查询并执行它们,如下所示。我将从 DAO 向此类发送参数。
Connection connection = Queries.getConnection();
String query = Queries.getQuery(queryName);//Queries i will get from xml
PreparedStatement preparedStatement = connection.prepareStatement(query);
在 JDBC 中为准备好的语句动态设置参数的最佳方法是什么。我相信,我们在 JDBC 中没有命名参数概念,就像在 spring JDBC 中那样。我们项目中只是简单的JDBC。
最佳答案
这样写:
public static int mapParams(PreparedStatement ps, Object... args) throws SQLException {
int i = 1;
for (Object arg : args) {
if (arg instanceof Date) {
ps.setTimestamp(i++, new Timestamp(((Date) arg).getTime()));
} else if (arg instanceof Integer) {
ps.setInt(i++, (Integer) arg);
} else if (arg instanceof Long) {
ps.setLong(i++, (Long) arg);
} else if (arg instanceof Double) {
ps.setDouble(i++, (Double) arg);
} else if (arg instanceof Float) {
ps.setFloat(i++, (Float) arg);
} else {
ps.setString(i++, (String) arg);
}
}
}
}
在查询中只需使用“?”需要设置参数的地方。
我知道这是老派代码,但只是举一些简单的例子...
关于java - 将参数动态设置为 JDBC 中的准备语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11777103/