PreparedStatement和statement的区别?
##preparedStatement有预编译的过程,绑定了sql之后,无论执行多少次,都不会出现编译。
statement如果执行多次,那么就会编译多遍的sql。
所以:
①前者效率高
而且数据库的版本越高,数据库对pre的支持就越好。
②前者安全性高
预编译的可以防止sql注入。
什么是sql注入?
所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击.
什么是web表单?
表单就是在网页上用于输入信息的区域,主要的功能是收集用户输入的信息,并将其提交给后端的服务器进行处理,实现用户与服务器的交互。
③代码的可读性和维护性更好
sql语句一个放在创建的时候,一个放在执行的时候.
④pre尽最大可能去提高性能(批处理效率高)
语句被db的编译器编译后的执行代码,使用频繁的代码,会被缓存下来.=>下次调用时,只要相容的预编译语句,就不需要编译,只要将参数直接传入编译过的语句执行(相当于一个函数)
preparedStatement和Statement的关系?
preparedStatement继承自Statement,都是接口.