jdbc之批处理

当需要向数据库发送一批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语句相同,但参数不同的批处理中。因此此种形式的批处理经常用于在同一个表中批量插入数据,或批量更新表的数据。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值