菜鸟学JDBC(六)
来源:互联网 发布:常用的数据挖掘软件 编辑:程序博客网 时间:2024/06/04 13:57
上一篇(http://blog.csdn.net/rowandjj/article/details/8978108)我们介绍了JDBC中事务处理的知识,我们的重点是掌握事务处理的特性(ACID),以及JDBC事务处理的一般步骤,
(判断数据库是否支持事务->取消事务自动提交->添加事务信息->提交事务->异常处理,出错回滚等)。重点掌握setAutoCommit,commit,rollback等方法。
本篇我们来介绍一下JDBC中的批处理:
当需要向数据库发送一批sql语句执行时,应避免向数据库一条条的发送执行,而应该采用jdbc的批处理,可以提升执行效率.
通过addBatch()方法可以向数据库中加入多条数据,可以删除数据,同时可以执行多条记录,在向sql提交语句的时候要用executeBatch,提交之后清除缓存可以调用clearBatch方法。
看个例子:
package demo;import java.sql.Connection;import java.sql.Date;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class BatchDemo{ /** * 批处理sql语句 * @param args */ public static void main(String[] args) { long start = System.currentTimeMillis();// addBatchFunc(); func(); long end = System.currentTimeMillis(); System.out.println(end - start); } public static void addBatchFunc() { Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { conn = JDBCUtils.getConnection(); String sql = "insert into tb_6 values (?,?,?)"; ps = conn.prepareStatement(sql); for(int i = 0; i < 100 ; i++) { ps.setString(1,"name " + i); ps.setDate(2, new Date(System.currentTimeMillis())); ps.setFloat(3,i + 100); ps.addBatch();//添加批处理语句 } ps.executeBatch();//执行批处理语句 ps.clearBatch(); } catch (SQLException e) { e.printStackTrace(); } finally { JDBCUtils.free(rs, ps, conn); } } public static void func() { Connection conn = null; Statement st = null; ResultSet rs = null; try { conn = JDBCUtils.getConnection(); String sql = "insert into tb_6 values ('zh','1999.10.01','1')"; st = conn.createStatement(); st.addBatch(sql); sql = "insert into tb_6 values ('ch','1999.10.01','2')"; st.addBatch(sql); st.executeBatch(); st.clearBatch(); } catch (SQLException e) { e.printStackTrace(); } finally { JDBCUtils.free(rs, st, conn); } }}
批处理比较简单,相信大家看了就知道了。
- 菜鸟学JDBC(六)
- 菜鸟学JDBC(一)
- 菜鸟学JDBC(二)
- 菜鸟学JDBC(三)
- 菜鸟学JDBC(四)
- 菜鸟学JDBC(五)
- 菜鸟学SSH(六)——Spring事务管理
- 菜鸟学自动化测试(六)----selenium 命令之文字范本匹配
- 菜鸟学Java(六)——简单验证码生成(Java版)
- 菜鸟学数据库(六)——方便快捷的开启、关闭Oracle服务
- 菜鸟学Java(六)——简单验证码生成(Java版)
- 菜鸟学JS(六)——JS在文本域光标位置插入文本
- JDBC 概述(六)
- JDBC 概述(六)
- JDBC 概述(六)
- JDBC(六)
- 【菜鸟学Java】9:使用dom4j解析jdbc.xml
- 菜鸟学框架——JDBC VS Hibernate VS Mybatis
- Flex的拖动事件 DragEvent DragManager
- WebCore中的渲染机制(一):基础知识
- VmPlayer 无法启动解决方法一例
- dwr 后台推送技术
- bash shell 123
- 菜鸟学JDBC(六)
- CDC::GetSafeHdc()和CDC::m_hDC的区别
- 如何进行性能测试需求细化
- php取整的几种方式
- ubuntu qt 多媒体开发环境配置
- Take a lifetime to be a good (and happy) programmer
- Vs2010使用SplitterWnd时,拖动窗口导致View间歇性消失
- 在Net开发中常见易犯的错误,简单罗列一下
- [SQL}多表连接查询(详细实例)