jdbc之批处理

来源:互联网 发布:阿里云 知乎 编辑:程序博客网 时间:2024/05/21 14:55

当需要向数据库发送一批sql指令时,应该避免一条一条的向数据库发送命令,而应该采用jdbc的批处理机制,以提升效率。

jdbc提供两种批处理机制:

第一种:

statement.addbatch(sql);,这个方法返回一个list集合,执行批处理指令------executeBatch(),之后调用clearBatch(),清理批。

Connection conn = null;Statement st = null;ResultSet rs = null;try {conn = JdbcUtil.getConnection();String sql1 = "insert into user(name,password,email,birthday) values('kkk','123','abc@sina.com','1978-08-08')";String sql2 = "update user set password='123456' where id=3";st = conn.createStatement();st.addBatch(sql1);  //把SQL语句加入到批命令中st.addBatch(sql2);  //把SQL语句加入到批命令中st.executeBatch();} finally{JdbcUtil.free(conn, st, rs);}
采用这种方法的缺点是:没有预编译sql语句,还有就是,当要向数据库发送多条命令相同而参数不同的sql指令是,需要重复写很多次sql指令,过于繁琐。


第二种:

PreparedStatement.addBatch(),优点:发送的是预编译后的SQL语句,执行效率高。缺点:只能应用在SQL语句相同,但参数不同的批处理中。因此此种形式的批处理经常用于在同一个表中批量插入数据,或批量更新表的数据。



0 0
原创粉丝点击