我尝试调用指定参数名称的存储过程,但 JDBC 无法接受这些参数。它说:
方法 org.postgresql.jdbc4.Jdbc4CallableStatement.setObject(String,Object) 尚未实现。
我使用postgresql-9.2-1003.jdbc4
我还有其他方法可以做到这一点吗?
我知道我可以只指定序列号。但我想指定参数名称,因为这样对我来说更方便。
我的代码:
String call_statement = "{ ? = call procedure_name(?, ?, ?) }";
CallableStatement proc = connection.prepareCall(call_statement);
proc.registerOutParameter(1, Types.OTHER);
proc.setObject("param1", 1);
proc.setObject("param2", "hello");
proc.setObject("param3", true);
proc.execute();
ResultSet result = (ResultSet)proc.getObject(1);
最佳答案
不幸的是,PostgreSQL 数据库的 JDBC 4 驱动程序的实现不支持使用参数名称的功能。请参阅code GrepCode 中的 JDBC 4 实现.
但是,您仍然可以继续使用整数(变量或文字)来指示参数的位置。
关于java - PostgreSQL 上带有参数名称的 CallableStatement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19721238/