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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黄坚声 中级黑马   /  2012-5-11 13:21  /  1512 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

为什么开发中不喜欢用Statement接口,而是喜欢用PararedStatement接口呢?真搞不懂啊!:L

2 个回复

倒序浏览
1、PararedStatement比Statement的代码有更好的可读性和维护性;
2、PararedStatement尽最大可能提高性能;
3、最重要的一点是极大的提高了安全性。
回复 使用道具 举报
思路:
     a.statement和预处理sql语句的性能比较。//oracle机制完成
     b.调用存储过程实现某一功能模块
     c.高级查询。多条件查询。主要实现思路:拼接sql语句和模糊查询结合。
     d.多表连接高级查询。添加多表连接条件。只不过不能再用dbutile的query简单方法。必须重写接口ResultSetHandler并出入到query方法中,不能使用new BeanListHandler(clazz)方式进行查询。
Statement VS  PreparedStatement 比较
5000条数据:前者7秒  后者3秒

代码的可读性和可维护性.
PreparedStatement 能最大可能提高性能:
DBServer会对预编译语句提供性能优化。因为预编译语句有可能被重复调用,所以语句在被DBServer的编译器编译后的执行代码被缓存下来,那么下次调用时只要是相同的预编译语句就不需要编译,只要将参数直接传入编译过的语句执行代码中就会得到执行。
在statement语句中,即使是相同操作但因为数据内容不一样,所以整个语句本身不能匹配,没有缓存语句的意义.事实是没有数据库会对普通语句编译后的执行代码缓存.这样每执行一次都要对传入的语句编译一次.
PreparedStatement能保证安全性
单条语句的执行:
   PreparedStatement执行效率比statement执行率低

这个我也不怎么清楚他们的区别,是自己去网上找的资料,我觉得蛮有用的,希望对你有用..

评分

参与人数 1黑马币 +10 收起 理由
职业规划-刘倩老师 + 10 赞一个!

查看全部评分

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