java - PostgreSQL 上带有参数名称的 CallableStatement

标签 java postgresql jdbc

我尝试调用指定参数名称的存储过程,但 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/

相关文章:

java - 在 Wildfly 16 的应用程序中加载 pk12 文件

java - 注入(inject)实例上的 Guice 空指针异常

Java+SQL执行查询并返回结果

java - JDBC MS SQL Server Kerberos 身份验证

java - MATLAB java 堆空间 : GUI vs. java.opts

database - 使用 Clojure 在数据库上循环

hibernate - org.hibernate.type.TextType 和 Oracle

sql - 使用 bash 命令在 postgresql 中创建数据库

java - 通过JDBC向PostgreSQL表中插入 "daterange"字段值

Java 如何正确转换 jdbc 查询的结果