zoukankan      html  css  js  c++  java
  • PreparedStatement用途

    关于PreparedStatement接口,需要重点记住的是:
    1. PreparedStatement可以写参数化查询,比Statement能获得更好的性能。
    2. 对于PreparedStatement来说,数据库可以使用已经编译过及定义好的执行计划,这种预处理语句查询比普通的查询运行速度更快。
    3. PreparedStatement可以阻止常见的SQL注入式攻击。
    4. PreparedStatement可以写动态查询语句
    5. PreparedStatement与java.sql.Connection对象是关联的,一旦你关闭了connection,PreparedStatement也没法使用了。
    6. “?” 叫做占位符。
    7. PreparedStatement查询默认返回FORWARD_ONLY的ResultSet,你只能往一个方向移动结果集的游标。当然你还可以设定为其他类型的值如:”CONCUR_READ_ONLY”。
    8. 不支持预编译SQL查询的JDBC驱动,在调用connection.prepareStatement(sql)的时候,它不会把SQL查询语句发送给数据库做预处理,而是等到执行查询动作的时候(调用executeQuery()方法时)才把查询语句发送个数据库,这种情况和使用Statement是一样的。
    9. 占位符的索引位置从1开始而不是0,如果填入0会导致*java.sql.SQLException invalid column index*异常。所以如果PreparedStatement有两个占位符,那么第一个参数的索引时1,第二个参数的索引是2.

    以上就是为什么要使用PreparedStatement的全部理由,不过你仍然可以使用Statement对象用来做做测试。但是在生产环境下你一定要考虑使用 PreparedStatement 。

  • 相关阅读:
    实验13读后感:《算法竞赛进阶指南》
    实验12图的m着色问题
    实验11哈夫曼编码
    极差 牛客-16736(单调栈,线段树)
    实验10相容问题
    实验9LCS算法
    实验8矩阵链乘法
    Array Without Local Maximums CF-1068D(计数DP)
    Save the Nature CF-1241C(二分、贪心)
    浅谈linux命令大全
  • 原文地址:https://www.cnblogs.com/tianjian/p/4019090.html
Copyright © 2011-2022 走看看