【发布时间】:2015-10-24 11:08:51
【问题描述】:
我正在研究 JDBC 中 Statement 和 PreparedStatement 之间的差异,并发现与 Statement 相比,PreparedStatement here 和 here 有很多优势。
我的一些同事问为什么我们仍然需要 Statement 以及为什么它没有被弃用,看看 PreparedStatement 的优势。
那么我们还有什么理由让我们在 JDBC API 中还有 Statement 呢?
【问题讨论】:
-
不带参数的查询应该被执行
-
PreparedStatement是Statement接口的实现。你的问题不清楚... -
我总是更喜欢使用准备好的语句,因为它比语句具有以下优势。 1)PreparedStatement 帮助我们防止 SQL 注入攻击,因为它会自动转义特殊字符。 2)PreparedStatement 允许我们使用参数输入执行动态查询。 3)PreparedStatement 提供了不同类型的setter 方法来设置查询的输入参数。 4)PreparedStatement 比Statement 快。 5)PreparedStatement 帮助我们使用 setter 方法编写面向对象的代码 6)PreparedStatement 返回 FORWARD_ONLY ResultSet,
-
如果你想在没有变量的情况下运行查询并只运行一次,语句可能很有用,但这种优势可能只持续几毫秒。我看到语句的唯一优点是执行动态 SQL。在docs.oracle.com/cd/B10501_01/appdev.920/a96590/adg09dyn.htm查找有关动态sql的详细信息
-
@alfasin,是的,但我的问题是 PreparedStatement 是否比 Statement 有这么多优势,那么为什么我们仍然有 Statement 接口?它应该被视为已弃用。
标签: java jdbc prepared-statement