我有一個接受連接的通用 API。似乎其中一個調(diào)用者傳遞了一個連接,該prepareCall連接返回一個 類型的對象NewProxyCallableStatement。下面的代碼然后失?。篠QLServerCallableStatement stmt = (SQLServerCallableStatement) connection.prepareCall(sprocSQL);API 調(diào)用者看到的完整異常是:java.lang.ClassCastException: com.mchange.v2.c3p0.impl.NewProxyCallableStatement cannot be cast to com.microsoft.sqlserver.jdbc.SQLServerCallableStatement我需要使用,SQLServerCallableStatement因為我正在調(diào)用一個帶有類型輸入?yún)?shù)的存儲過程TABLE,并且SQLServerCallableStatement有一個setStructured允許構造表類型變量的方法。
1 回答

斯蒂芬大帝
TA貢獻1827條經(jīng)驗 獲得超8個贊
解決方案是使用下面的代碼:
SQLServerCallableStatement?stmt?=?connection.prepareCall(sprocSQL).unwrap(com.microsoft.sqlserver.jdbc.SQLServerCallableStatement.class);
如果您使用的是 c3p0,則需要使用已unwrap
修復錯誤的版本。我用c3p0-0.9.5.2
.
參考:?unwrap方法(SQLServerCallableStatement)
添加回答
舉報
0/150
提交
取消