java - PreparedStatement 中的存储过程参数名称而不是参数索引?

标签 java jdbc prepared-statement

现在,当我在 PreparedStatement 中调用存储过程时,我必须将参数添加到 CallableStatement 中,如下所示:

procStmt.setString(1, "a");
procStmt.setString(2, "b");
procStmt.setString(3, "c");
// etc...

一旦您在调用的存储过程中有大约 50 多个参数并且并非所有参数都是必需的,这就会变得非常乏味。有没有办法宁愿这样做:

procStmt.setString("myParameter", "a");
procStmt.setString("yourParameter", "b");
procStmt.setString("ourParameter", "c");
// etc...

这样参数会直接传递给需要它们的参数,您不必担心通过参数发送的顺序或需要发送空的 String 对象等。

最佳答案

为什么要使用 PreparedStatement.. 您可以使用 CallableStatement 来调用存储过程,而 Callable Statement 提供了通过参数名称设置值的选项...

请引用http://docs.oracle.com/javase/7/docs/api/java/sql/CallableStatement.html#setString(java.lang.String,%20java.lang.String)

关于java - PreparedStatement 中的存储过程参数名称而不是参数索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31854203/

相关文章:

java - 如何仅使用堆栈实现递归函数?

mysql - 您使用什么工具通过 JDBC 连接到 AWS Athena

java - 如何将 JDBC azure sql 服务器连接到 Android 应用程序?

java - 为什么在尝试对 ResultSet 中检索到的列的值求和时出现错误?

php - lastInsertId() 用于准备语句中的更新

java - 为什么 == 和 .equals 都不适用于 Java 中的字节数组?

java - 是否可以通过在 Apache Velocity 中定义模板来生成 Java 代码?

java - 如何为 Java 生成 2048 位 DSA key 对?

java - 将元组数组发送到准备好的语句

java - 根据文本字段值修改 select 语句