Java -- JDBC 批处理
来源:互联网 发布:java split有空字符串 编辑:程序博客网 时间:2024/05/17 02:17
两种批处理方式:
采用Statement.addBatch(sql)方式实现批处理:
•优点:可以向数据库发送多条不同的SQL语句。
•缺点:
•SQL语句没有预编译。
•当向数据库发送多条语句相同,但仅参数不同的SQL语句时,需重复写上很多条SQL语句。例如:
Insert into user(name,password) values(‘aa’,’111’);
Insertinto user(name,password) values(‘bb’,’222’);
Insertinto user(name,password) values(‘cc’,’333’);
Insertinto user(name,password) values(‘dd’,’444’);
采用PreparedStatement.addBatch()实现批处理
•优点:发送的是预编译后的SQL语句,执行效率高。
•缺点:只能应用在SQL语句相同,但参数不同的批处理中。因此此种形式的批处理经常用于在同一个表中批量插入数据,或批量更新表的数据。
public class Demo3 { /* create table testBatch ( id int primary key, name varchar(20) ); */@Testpublic void testBatch1() //方式一:同时处理多类多条SQL语句,但效率较低(没有预编译){Connection conn = null;Statement st = null;ResultSet rs = null;try{conn = JdbcUtils.getConnection();String sql1 = "insert into testBatch(id,name) values(1,'kevin')";String sql2 = "insert into testBatch(id,name) values(2,'xiang')";String sql3 = "delete from testBatch where id=1";st = conn.createStatement();st.addBatch(sql1);st.addBatch(sql2);st.addBatch(sql3);st.executeBatch();st.clearBatch();}catch (Exception e){e.printStackTrace();}finally {JdbcUtils.release(conn, st, rs);}}@Testpublic void testBatch2() //方式二:效率高,用于SQL相同 只是参数不同的批处理{long startTime = System.currentTimeMillis();Connection conn = null;PreparedStatement st = null;ResultSet rs = null;try{conn = JdbcUtils.getConnection();String sql = "insert into testBatch(id,name) values(?,?)";st = conn.prepareStatement(sql);for(int i=1; i<10000; i++){st.setInt(1, i);st.setString(2, "kevin" + i);st.addBatch();if(i%1000==0){st.executeBatch();st.clearBatch();System.out.println(i);}}st.executeBatch();st.clearBatch();}catch (Exception e){e.printStackTrace();}finally {JdbcUtils.release(conn, st, rs);}long endTime = System.currentTimeMillis();System.out.println("总共用时: " + (endTime-startTime)/1000 + "秒");}}
0 0
- Java JDBC 批处理
- Java -- JDBC 批处理
- Java用JDBC批处理插入
- Java用JDBC批处理插入
- [Java] JDBC 05 TestBatch.java 批处理 Batch
- JDBC批处理及参数绑定.java
- Java JDBC批处理插入数据操作
- Java JDBC批处理插入数据操作
- Java-JDBC调用批处理、存储过程、事务
- Java JDBC批处理插入数据操作
- Java JDBC批处理插入数据操作
- Java JDBC批处理插入数据操作
- Java JDBC批处理插入数据操作
- Java JDBC批处理插入数据操作
- Java JDBC批处理插入数据操作
- Java JDBC批处理插入数据操作
- Java JDBC批处理插入数据操作
- Java JDBC批处理插入数据操作
- C 语言的可变参数表函数的设计
- Unity手游之路<五>虚拟摇杆之Unity内置插件实现
- 在startos上搭建LAMP之安装apache
- 黑马程序员_银行业务调度系统
- 程序猿必看的熬夜须知和技巧
- Java -- JDBC 批处理
- Hadoop实战-初级部分 之 Hadoop Shell 基本操作介绍
- 将博客搬至CSDN
- Web Services--gSOAP 2.7.6 第七章(7.2.2)
- 在Linux下安装rarlinux
- 【cocos2d-x IOS游戏开发-城市跑酷15】完善积分板【CCLabelBMFont】
- iPhone不同页面之间跳转
- Hadoop实战-初级部分 之 Hadoop 分布式文件系统1
- 将桌面access97表转成西部数码MyAdminPHP管理的MySQL