黑马程序员技术交流社区

标题: PreparedStatement和Statement比较 [打印本页]

作者: 马胜平    时间: 2012-2-19 20:49
标题: PreparedStatement和Statement比较
java 操作数据库是用PreparedStatement 对象好还是用Statement对象好呢?
作者: 彭坤    时间: 2012-2-19 21:07
这要看你是的需求了
PreparedStatement是预编译的,对于批量处理可以大大提高效率
Statement 是每次执行,每次都重新编译,在对数据库只执行一次性存取的时侯,用 Statement 对象进行处理
你应该始终以PreparedStatement代替Statement,原因
一、代码的可读性和可维护性更好
二、PreparedStatement可以批处理,最大可能提高性能.
三、最重要的一点是极大地提高了安全性
作者: 何招俊    时间: 2012-2-19 22:22
它们是JDBC提供的类:
statement 与preparestatement 区别
1. PreparedStatement对象不仅包含了SQL语句,而且大多数情况下这个语句已经被预编译过,因而当其执行时,只需DBMS运行SQL语句,而不必先编译。当你需要执行Statement对象多次的时候,PreparedStatement对象将会大大降低运行时间,当然也加快了访问数据库的速度。这种转换也给你带来很大的便利,不必重复SQL语句的句法,而只需要更改其中变量的值,便可重新执行SQL语句。选择 PreParedStatement对象与否,在于相同的句法的SQL语句是否执行了多次,而且两次之间的差别仅仅是变量不同,如果仅仅执行了一次的话,它应该和普通的对象毫无差异,体现不出她预编译的优越性。
2.prepareStatement是把你的sql语句预先“编译”好,每次只替换定义的变量,  
他的作用是减少与数据库的通信量,从而加快执行速度,主要用在循环执行SQL语句
3. prepareStatement已经予编译,速度比Statement快些  
prepareStatement解决有关特殊字符插入到数据库的问题。如(',",),?)
4. Statement   ─  由方法 createStatement   所创建。Statement 对象用于发送简单的SQL语句。 PreparedStatement   ─ 由方法   prepareStatement   所创建。PreparedStatement对象用于发送带有一个或多个输入参数(IN参数)的SQL语句。PreparedStatement   拥有一组方法,用于设置   IN   参数的值。执行语句时,这些   IN   参数将被送到数据库中。PreparedStatement的实例扩展了Statement,因此它们都包括了Statement的方法。PreparedStatement对象有可能比Statement对象的效率更高,因为它已被预编译过并存放在那以供将来使用。   
作者: 陈伟    时间: 2012-2-19 22:48
PreparedStatement对象不仅包含了SQL语句,而且大多数情况下这个语句已经被预编译过,因而当其执行时,只需DBMS运行SQL语句,而不必先编译。当你需要执行Statement对象多次的时候,PreparedStatement对象将会大大降低运行时间,当然也加快了访问数据库的速度。这种转换也给你带来很大的便利,不必重复SQL语句的句法,而只需要更改其中变量的值,便可重新执行SQL语句。选择 PreParedStatement对象与否,在于相同的句法的SQL语句是否执行了多次,而且两次之间的差别仅仅是变量不同,如果仅仅执行了一次的话,它应该和普通的对象毫无差异,体现不出她预编译的优越性。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2