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