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 - Groovy 和 Spock 之间的冲突

java - 无法在 Log4j Spring 桌面应用程序中记录 java.sql.SQLException

sql - 如何使用外连接和多个 OR 条件编写查询?

java - 内存数据库使用maven使用内存数据库测试mysql数据库操作API

Java更新sql参数索引超出范围

java - 一张图像中包含多个数据矩阵条形码

java - 设计问题: How can I refactor a validation check into another method

database - 如何将 postgresql 中的模式从本地服务器迁移到生产服务器?

sql - 在许多相邻行上使用 WHERE 进行缓慢的 Postgres 查询

java - 为什么在我的java代码中出现异常后回滚操作没有完成