关于PreparedStatement与Statement描述错误的是()

  1. 一般而言,PreparedStatement比Statement执行效率更高
  2. PreparedStatement会预编译SQL语句
  3. Statement每次都会解析/编译SQL,确立并优化数据获取路径
  4. Statement执行扫描的结果集比PreparedStatement大
4 1 收藏


直接登录
最新评论
  • LGTM   2016/04/03

    选 D.

    在Java中,Statement和PreparedStatement用于在已经建立数据库连接的基础上向数据库发送要执行的SQL语句。

    Statement用于执行不带参数的简单SQL语句;PreparedStatement可以执行带参数的预编译SQL语句。

    在执行同一个SQL语句时,PreparedStatement只对它进行一次的解析和编译,其后可以利用PreparedStatement对象高效地多次执行。而对于Statement来说,每次执行同一个SQL语句时,Statement都会对它进行解析和编译。

    但是二者的扫描结果集是一样的。

    • 王先生 学生 2016/04/04

      答案应该为D
      PreparedStatement和Statement的区别
      1.创建时的区别:
      Statement statement = con.createStatement( );
      PreparedStatement preStatement = con.preparedStatement( );
      执行的时候:
      ResultSet rSet = statement.executeQuery(sql);
      ResultSet rset = statement.executeQuery( );
      由上可以看出,PreparedStatement有预编译的过程,已经绑定sql,之后无论执行多少
      遍都不会再去进行编译,而statement则不同,如果执行多遍,则相应的就要编译多少
      遍sql,从这点看,preStatement的效率会比Statement高一点
      2.安全性问题
      Preparement是预编译的,所以可以有效的防止SQL注入等问题,所以PrepareStatement
      得安全性要比Statement高
      3. 代码的可读性和可维护性
      PrepareStatement都要更胜一筹,但是两者执行结果的扫描集是一样的。

    • 王先生 学生 2016/04/04

      对的 分析的也很全面,一个有经验的java开发人员对这两者的效率,应该很有体会