CallableStatement callStmt = conn.prepareCall("{ ? = call get_test(?) }");
callStmt.registerOutParameter(1, Types.OTHER);
callStmt.setObject(2, testParam);
callStmt.execute();
PostgreSQL的
上面的代碼顯示如何調用從當前對我的工作的應用程序實現的PostgreSQL數據庫的存儲過程。
的MySQL - Java和MySQL的程序和功能文檔集成
-------------------------------------------- ---------------------------
CallableStatement callStmt = conn.prepareCall("{ call get_test(?) }");
callStmt.setObject(1, testParam);
callStmt.execute();
的MySQL
使用從執行PostgreSQL數據庫的代碼相同的邏輯,以上是我在應用程序上實現MySQL時所嘗試的代碼。但是,我所調用的過程被視爲一個函數。這將導致出現get_test
函數不存在的錯誤。
另一方面,下面的代碼工作得很好。
PreparedStatement prepStmt = conn.prepareCall("{ call get_test(?) }");
prepStmt .setObject(1, testParam);
prepStmt .execute();
我的問題是: - 爲什麼使用CallableStatement時的Java對待存儲過程作爲功能?
嘗試在函數名稱後面和左括號之前放置一個空格,MySQL有時會相當挑剔:'conn.prepareCall(「{call get_test(?)}」)' – FrankPl