2013-11-01 60 views
1

我試過使用指定的參數名來調用存儲過程,但是JDBC無法接受參數。它說:CallableStatement在PostgreSQL上帶有參數名

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); 

回答

2

不幸的是,使用參數名稱不能由JDBC 4驅動程序的PostgreSQL數據庫的實現所支持的特性。請參閱GrepCode中此JDBC 4實現的code

但是,您仍然可以繼續使用整數(變量或文字)來指示參數的位置。

+0

Aww ..什麼是無賴。這個功能從來沒有實現過嗎? – William

+0

PostgreSQL尚未實現JDBC 4的所有功能。顯然,Oracle和IBM已實現此功能。 –

+0

好的,謝謝隊友。 – William

相關問題