你所不知道的jdbc操作
来源:互联网 发布:最长单词c 语言 编辑:程序博客网 时间:2024/05/23 07:25
对于Jdbc操作的statement 和 preparedStatement,网络上面已经有太多的声明和定义
今天,梳理一下基本的定义和你所不知道的一些。
statement和preparedStatement 都是接口,preparedStatement 继承statement。
也就是说后者在实现前者功能的基础上,肯定是做了优化和改良的。(长江后浪推前浪,前浪...)
以下是2种对象的声明和调用方式
statement
prepareStatement
以下是资料梳理的各自的优缺点
1.整体代码的可读性和可维护性。
preparedStatement 是强于statement的,statement的拼接字符串是很难去维护和便于程序员查看的。
2.PreparedStatement预编译,尽最大可能提高性能。
PreparedStatement操作的语句是预编译的,编译器编译后的执行代码被缓存下来,那么下次调用时只要是相同的预编译语句就不需要编译,只要将参数直接传入编译过的语句执行代码中。而对于statement,对于每一个sql语句,每次去操作都是进行编译处理的。
3.最重要的一点是preparedStatement 极大地提高了安全性,防止恶意sql注入的问题。
[' or '1' = '1] [万能密码]
而在实际应用中,当我们了解和熟悉二者的区别和各自的优缺点之后,怎么使用取决于你。
下面是个人总结的整体性能方面的内容。
1.statement单条执行插入的效率是优化prepareStatement至少2倍的。
而prepareStatement是支持批量插入的,效率是statement的至少XX倍。
以下是具体的3者之间的1W和100W数据的测试结果
1W数据
100W数据
23秒,你没有看错,走过路过,不要错过,23秒,你看到的不是假的。
执行preparedStatement Batch jdbc连接串必须加下rewriteBatchedStatements=true,效率是杠杠的!
PreparedStatement被用来多次执行INSERT语句. 在这里,pst.executeUpdate() 执行了100次INSERT操作, 共有101次网络往返. 其中,1次往返是预储statement, 另外100次往返执行每个迭代。
当在100次INSERT操作中使用pst.executeBatch()方法时, 只有两次网络往返. 1次往返是预储statement, 另一次是执行batch命令. 虽然Batch命令会用到更多的数据库的CPU周期, 但是通过减少网络往返,性能得到提高. 记住, JDBC的性能最大的增进是减少JDBC驱动与数据库之间的网络通讯。
- 你所不知道的jdbc操作
- 你所不知道的JavaScript的逻辑操作符
- 你所不知道list的妙用
- 你所不知道的西安
- 你所不知道的知识
- 你所不知道的华为(z)
- 你所不知道的const
- 告诉你所不知道的typedef
- 告诉你所不知道的typedef
- 你所不知道的台湾宗教
- 你所不知道的8020法则
- 你所不知道的传输层
- 你所不知道的传输层
- 扑克你所不知道的
- 你所不知道的传输层
- java你所不知道的实用技巧
- java你所不知道的实用技巧
- 你所不知道的马云
- 在NeoKylin下安装ice
- iOS UILabel自适应大小
- 交叉编译工具链
- 用Docker搭建微信公众号
- ORA-29861: 域索引标记为 LOADING/FAILED/UNUSABLE
- 你所不知道的jdbc操作
- jenkins 通过shell启动java应用程序会随着job完成而被自动关闭的解决方法
- 最能燃起你学习激情的一句话是什么?
- Sizeof与Strlen的区别与联系
- android-修改TextView中部分文字的颜色
- preparedStatement和statement强化篇
- hdu 5001
- CentOS配置网卡(仅访问局域网)
- USB2.0 PCB布线关键与经验教训