PreparedStatement对象和Statement对象(一)
来源:互联网 发布:宇宙巨校闪级生软件 编辑:程序博客网 时间:2024/06/05 23:51
1. 在动态SQL或有时间限制的命令中使用Statement对象
在执行SQL命令时,我们有二种选择:可以使用PreparedStatement对象,也可以使用Statement对象。无论多少次地使用同一个SQL命令,PreparedStatement都只对它解析和编译一次。当使用Statement对象时,每次执行一个SQL命令时,都会对它进行解析和编译。这可能会使你认为,使用PreparedStatement对象比使用Statement对象的速度更快。然而,我进行的测试表明,在客户端软件中,情况并非如此。因此,在有时间限制的SQL操作中,除非成批地处理SQL命令,我们应当考虑使用Statement对象。
此外,使用Statement对象也使得编写动态SQL命令更加简单,因为我们可以将字符串连接在一起,建立一个有效的SQL命令。因此,我认为,Statement对象可以使动态SQL命令的创建和执行变得更加简单。
2.利用PreparedStatement对象提高数据库的总体效率
在使用PreparedStatement对象执行SQL命令时,命令被数据库进行解析和编译,然后被放到命令缓冲区。然后,每当执行同一个PreparedStatement对象时,它就会被再解析一次,但不会被再次编译。在缓冲区中可以发现预编译的命令,并且可以重新使用。在有大量用户的企业级应用软件中,经常会重复执行相同的SQL命令,使用PreparedStatement对象带来的编译次数的减少能够提高数据库的总体性能。如果不是在客户端创建、预备、执行PreparedStatement任务需要的时间长于Statement任务,我会建议在除动态SQL命令之外的所有情况下使用PreparedStatement对象。
3、在成批处理重复的插入或更新操作中使用PreparedStatement对象
如果成批地处理插入和更新操作,就能够显著地减少它们所需要的时间。Oracle提供的Statement和 CallableStatement并不真正地支持批处理,只有PreparedStatement对象才真正地支持批处理。我们可以使用addBatch()和executeBatch()方法选择标准的JDBC批处理,或者通过利用PreparedStatement对象的setExecuteBatch()方法和标准的executeUpdate()方法选择速度更快的Oracle专有的方法。要使用Oracle专有的批处理机制,可以以如下所示的方式调用setExecuteBatch():
PreparedStatement pstmt3D null;
try {
((OraclePreparedStatement)
pstmt).setExecuteBatch(30);
...
pstmt.executeUpdate();
}
调用setExecuteBatch()时指定的值是一个上限,当达到该值时,就会自动地引发SQL命令执行,标准的executeUpdate()方法就会被作为批处理送到数据库中。我们可以通过调用PreparedStatement类的sendBatch()方法随时传输批处理任务。
- PreparedStatement对象和Statement对象(一)
- PreparedStatement对象和Statement对象
- PreparedStatement对象和Statement对象(二)
- java中Statement对象和PreparedStatement对象
- jdbc中的Statement和PreparedStatement接口对象
- 深入理解Statement、PreparedStatement对象
- Statement对象与PreparedStatement对象性能分析
- PreparedStatement对象替代Statement解决sql注入
- java操作数据库---Statement对象和preparedStatement对象的区别(二)
- Java数据库连接(JDBC)之二:Statement对象和PreparedStatement对象的使用
- JSP基础(十四)——使用JDBC的Statement对象和PreparedStatement对象对数据库进行CRUD
- JSP中操作数据库的三个对象:Statement、PreparedStatement、CallableStatement
- JDBC中操作数据库的三个对象:Statement;PreparedStatement;CallableStatement
- JDBC的预编译语言对象PreparedStatement为什么优于Statement
- Statement和preparedStatement区别
- PreparedStatement和Statement比较
- PreparedStatement和Statement区别
- preparedStatement和Statement
- JAVA程序中将数值以金额形式表示
- event.keycode值大全
- 软件开发者面试百问-----怎样把字符串反转?你能不用临时的字符串么?
- [秀] MarsBook 手机书吧
- Linux网络编程一步一步学-自己编写一个HTTP协议的目录浏览和文件下载服务器
- PreparedStatement对象和Statement对象(一)
- 过劳模 clockless worker
- As American as apple pie 美国特色
- [双语阅读]美国手机、网络使用率落后于北欧国家
- 关于PHP使用开源图表控件的学习
- What I have lived for 我为什么而活
- 我的Blog导读
- 政务透明 administrative transparency
- [英语阅读]土地流转将成“两会”热点