黑马程序员技术交流社区

标题: 数据库编程中的疑难问题,求解! [打印本页]

作者: 黄坚声    时间: 2012-5-11 13:21
标题: 数据库编程中的疑难问题,求解!
为什么开发中不喜欢用Statement接口,而是喜欢用PararedStatement接口呢?真搞不懂啊!:L
作者: 小小企鹅    时间: 2012-5-11 13:35
1、PararedStatement比Statement的代码有更好的可读性和维护性;
2、PararedStatement尽最大可能提高性能;
3、最重要的一点是极大的提高了安全性。
作者: 于陈    时间: 2012-5-11 13:45
思路:
     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执行率低

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




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