【发布时间】:2015-05-09 00:44:14
【问题描述】:
在 JDBC 查询方面需要一些帮助。 我会自己尝试一下,但现在我无法访问数据库。
我的问题是: 由于 CallableStatement 扩展了 PreparedStatement,这是否意味着我们可以使用 CallableStatement 来执行为prepared statement 准备的任何查询?
更具体地说,像这样使用 Callable 的任何缺点:
CallableStatement stmt = null;
String sql = "UPDATE Employees set age=30 WHERE id=";
stmt = conn.prepareCall(sql);
int empID = 102;
stmt.setInt(1, empID); );
stmt.execute();
stmt.close();
conn.close();
【问题讨论】:
-
你也许可以,但你不应该。 CallableStatement 是“用于执行 SQL 存储过程的接口。”。你没有调用存储过程,所以你不应该使用它。现在,对于大多数 JDBC 驱动程序,它可能会工作,但它可能具有专门用于存储过程的行为,并可能导致奇怪且难以诊断的问题。