A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 马胜平 中级黑马   /  2012-2-19 20:49  /  2777 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

java 操作数据库是用PreparedStatement 对象好还是用Statement对象好呢?

评分

参与人数 1技术分 +1 收起 理由
admin + 1 新人初到,大家帮帮忙!

查看全部评分

3 个回复

倒序浏览
这要看你是的需求了
PreparedStatement是预编译的,对于批量处理可以大大提高效率
Statement 是每次执行,每次都重新编译,在对数据库只执行一次性存取的时侯,用 Statement 对象进行处理
你应该始终以PreparedStatement代替Statement,原因
一、代码的可读性和可维护性更好
二、PreparedStatement可以批处理,最大可能提高性能.
三、最重要的一点是极大地提高了安全性

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
它们是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对象的效率更高,因为它已被预编译过并存放在那以供将来使用。   

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
PreparedStatement对象不仅包含了SQL语句,而且大多数情况下这个语句已经被预编译过,因而当其执行时,只需DBMS运行SQL语句,而不必先编译。当你需要执行Statement对象多次的时候,PreparedStatement对象将会大大降低运行时间,当然也加快了访问数据库的速度。这种转换也给你带来很大的便利,不必重复SQL语句的句法,而只需要更改其中变量的值,便可重新执行SQL语句。选择 PreParedStatement对象与否,在于相同的句法的SQL语句是否执行了多次,而且两次之间的差别仅仅是变量不同,如果仅仅执行了一次的话,它应该和普通的对象毫无差异,体现不出她预编译的优越性。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马