带有PostgreSQL参数名称的CallableStatement

问题描述 投票:1回答:2

我尝试用指定的参数名称调用存储过程,但是JDBC无法接受参数。它说:

Method org.postgresql.jdbc4.Jdbc4CallableStatement.setObject(String,Object) is not yet implemented.

我使用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);
java postgresql jdbc
2个回答
2
投票

[不幸的是,使用参数名称不是PostgreSQL数据库的JDBC 4驱动程序的实现所支持的功能。请参见code中此JDBC 4实现的GrepCode

但是,您仍然可以继续使用整数(变量或文字)来指示参数的位置。


0
投票

这里是2020,并且Postgres的标准开源JDBC驱动程序仍然不支持CallableStatement的命名参数表示法。

© www.soinside.com 2019 - 2024. All rights reserved.