现在,当我在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
个对象等。
答案 0 :(得分:2)
JDBC不支持命名参数。如果您使用Spring,我建议使用Spring JDBCTemplate NamedParameterJdbcTemplate。它可以在没有整个IoC容器的情况下使用。
答案 1 :(得分:2)
为什么使用PreparedStatement ..您可以使用CallableStatement调用存储过程,Callable Statement提供按参数名称设置值的选项...