CallableStatement callStmt = conn.prepareCall("{ ? = call get_test(?) }");
callStmt.registerOutParameter(1, Types.OTHER);
callStmt.setObject(2, testParam);
callStmt.execute();
PostgreSQL
上面的代码显示了如何从 PostgreSQL 数据库调用存储过程,该数据库当前在我正在使用的应用程序上实现。
-------------------------------------------------- ---------------------
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();
这是我的问题: - 为什么 Java 在使用 CallableStatement 时将存储过程视为函数?