如何在PreparedStatement上使用一个方法设置多个参数

时间:2016-05-18 13:41:46

标签: java jdbc

是否可以在PreparedStatement的单个方法调用中设置多个参数?我无法使用Java 1.6找到一个操作。

这样的事情:

// This query takes multiple input parameters
PreparedStatement ps = conn.prepareStatement("INSERT INTO MY_TABLE (COLUMN1, COLUMN2, COLUMN3, COLUMN4, COLUMN5) VALUES (?, ?, ?, ?, ?)");

// I would like to set all at once
ps.setMultipleParameters("USERNAME", 789, new Date(), 9999L, null);

我正在寻找一种方法来简化编写集成测试,因为我可以复制参数列表并粘贴测试。

1 个答案:

答案 0 :(得分:1)

不要认为jdbc API有这样的方法,但你可以轻松编写一个方法来做到这一点,例如:

 public static void setParameters(PreparedStatement statement, Object... parameters) throws SQLException {
    for (int i=0; i < parameters.length; i++) {
        statement.setObject(i, parameters[i]);
    }
}

但是,请阅读PreparedStatement.setObject(..)的javadoc,了解哪些限制适用于参数类型。