statement和preparedment的区别

Statemen和PreparedStatement都可以用于把sql语句从java程序中发送到指定数据库,并执行sql语句。

  1. 直接使用Statement,驱动程序一般不会对sql语句作处理而直接交给数据库。
  2. 使用PreparedStament,形成预编译的过程,并且会对语句作字符集的转换。
    有两个好处:对于多次重复执行的语句,使用PreparedStament效率会更高一点,并且在这种情况下也比较适合使用batch;另外,可以比较好地解决系统的本地化问题。
  3. PreparedStatement还能有效的防止危险字符的注入,也就是sql注入的问题。
  4. PreparedStatement不仅包含了SQL语句,而且大多数情况下这个语句已被预编译过,当其执行时,只需DBMS运行SQL语句,而不必先编译。当你需要执行Statement对象多次的时候,PreparedStatement对象将会降低运行时间,加快了访问数据库的速度。
    好处是,不必重复SQL语句的句法,而只需要改其中变量的值,便可重新执行SQL语句。选择PreparedStatement对象与否,在于相同句法的SQL语句是否执行了多次,而且两次之间的差别仅是变量的不同。如仅执行一次的话,它和普通的对象无差异,体现不出预编译的优越性。
  5. Statement不支持占位符,而PreparedStarement支持占位符

猜你喜欢

转载自blog.csdn.net/weixin_40601536/article/details/84666615
今日推荐