批处理介绍

什么是批处理?
当需要向数据库中插入大批量数据时,在批处理之前,要执行100条sql,就只需100此打开连接关闭连接和网络传输。
批处理过程:将大量的SQL打包成一个批次,发送给服务器,服务器接收数据,打开批,一次执行批里的sql,这样减少与数据库的交互,提高程序的效率。

  • 如何实现批处理?
    实现方式一:Statement对象实现
    需求:利用statement开发,插入dept表,100条
    实现方式二:Preparedstatement对象实现
    需求:利用preparedstatement对象,向dept表中插入100条数据

开发步骤:
1.获取数据库连接
2.获取传输器
3.执行SQL(批处理,打成一个批次,统一发给服务器)
4.解析结果集
5.关闭资源
注意:每次利用批处理完成插入100条数据,打一个批次是,要统一发送数据
事务优化
需求:让批处理程序快一点
设置事务的开关:conn.setAutoCommit(false);
手动提交事务:conn.commit();

两种方式的区别:
Statement

  • 优点:在一次批处理中,SQL更加灵活
  • 缺点:发生SQL注入,效率低,拼接参数麻烦
    preparedstatement
    * 优点:防止SQL注入,提高执行效率(骨架缓存),占位符拼接参数
    * 缺点:在一次批处理中,只可以完成骨架相同的SQL
    总结:

**  在没使用批处理时,插入100条SQL的话,需要打开100次数据库连接并且需要100次网络传输。
**  使用了批处理,效率不一定就高,跟数据库的版本,驱动的版本,硬件配置,网络速度都有关系
** 使用jdbc批处理时建议结合着事务优化一起做
**  注意:不建议一次性向批中插入大量数据,会造成OutofMemory

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值