JDBC为什么要使用PreparedStatement而不是Statement
来源:互联网 发布:java包名可以大写 编辑:程序博客网 时间:2024/06/05 20:35
Statement statement = conn.createStatement();
PreparedStatement preStatement = conn.prepareStatement(sql);
执行的时候:
ResultSet rSet = statement.executeQuery(sql);
ResultSet pSet = preStatement.executeQuery();
由上可以看出,PreparedStatement有预编译的过程,已经绑定sql,之后无论执行多少遍,都不会再去进行编译,
而 statement 不同,如果执行多变,则相应的就要编译多少遍sql,所以从这点看,preStatement 的效率会比 Statement要高一些
上述代码反复执行,
statement cost:95 preStatement cost:90
statement cost:100 preStatement cost:89
statement cost:92 preStatement cost:86
当然,这个也会跟数据库的支持有关系,http://lucaslee.iteye.com/blog/49292 这篇帖子有说明
虽然没有更详细的测试 各种数据库, 但是就数据库发展 版本越高,数据库对 preStatement的支持会越来越好,
所以总体而言, 验证 preStatement 的效率 比 Statement 的效率高
2>安全性问题
这个就不多说了,preStatement是预编译的,所以可以有效的防止 SQL注入等问题
所以 preStatement 的安全性 比 Statement 高
3>代码的可读性 和 可维护性
这点也不用多说了,你看老代码的时候 会深有体会
preStatement更胜一筹
别的暂时还没有想到,说没有查到会更好一些(汗),如果有别的差异,以后再补充
- JDBC为什么要使用PreparedStatement而不是Statement
- JDBC为什么要使用PreparedStatement而不是Statement
- JDBC为什么要使用PreparedStatement而不是Statement
- JDBC为什么要使用PreparedStatement而不是Statement
- JDBC为什么要使用PreparedStatement而不是Statement
- JDBC为什么要使用PreparedStatement而不是Statement
- JDBC为什么要使用PreparedStatement而不是Statement
- JDBC为什么要使用PreparedStatement而不是Statement
- JDBC为什么要使用PreparedStatement而不是Statement
- JDBC为什么要使用PreparedStatement而不是Statement
- JDBC为什么要使用PreparedStatement而不是Statement
- JDBC为什么要使用PreparedStatement而不是Statement
- JDBC为什么要使用PreparedStatement而不是Statement
- JDBC为什么要使用PreparedStatement而不是Statement
- JDBC为什么要使用PreparedStatement而不是Statement
- JDBC为什么要使用PreparedStatement而不是Statement
- JDBC为什么要使用PreparedStatement而不是Statement
- JDBC为什么要使用PreparedStatement而不是Statement
- 操作系统学习笔记-信号量及PV操作与进程互斥和消费者生产者问题
- 基于RHEL下的oracle集群在线扩容存储
- Java中Collections.sort()排序详解
- 如何去掉字符串中不需要的字符
- 存储过程的作用是什么?
- JDBC为什么要使用PreparedStatement而不是Statement
- JVM内存管理的机制
- 关于在集成显卡下使用OpenGL碰到的坑
- JSON快速入门(Java版)--慕课网笔记
- characterController OnCollisionEnter OnTriggerEnter 的总结(二)
- C++ Special:const关键字和常量指针 vs 指针常量
- 关于glm数学库的坑
- 融云实践经验
- 重温python基础5:引用