JDBC批量处理数据之分段批量提交以及异常处理

2019-07-05  本文已影响0人  Apple_Boy

首先来说批量处理数据的优点:

代码优化,提高程序执行性能

降低了java程序代码(客户端)和数据库之间的 网络通信的次数。

大数据量的插入问题:(jdbc,hibernate,ibatis)

1.每次只插入一条和数据库交互多次(很耗时间)

2.批量插入和数据库只交互一次(内存溢出)

解决办法:分段批量插入(推荐)

 jdbc批量处理数据是通过PreparedStatement对象的 addbatch(), executebatch() clearbatch()进行和数据库的交互。通常我们使用分段批量处理的方式 这样可以提高程序的性能 ,防止内存溢出。

1.每个sql语句都和数据库交互一次(非批量操作)

2.只和数据库交互一次(批量操作)(内存溢出)

当数据达到一定额度的时候就和数据库进行交互,分多次进行(分段批量操作)(500或者1000)

pst.addBatch();

if (i > 0 && i%1000 == 0) {

pst.executeBatch();

pst.clearBatch();

}

JDBC分段批量提交的时候出现异常怎么处理:

解决方案:

通过Map来解决性能问题。首先在分段批量提交的时候,我们不采用事务,这样就保证了合法的数据就自动提交,不合法的数据就自己自动进行回滚,为了避免不合法数据影响后续合法数据的提交,采用定义业务规则字典表,实现对数据的验证,将不合法的数据记录下来,供用户进行后续处理,而合法的数据就全部提交。

上一篇下一篇

猜你喜欢

热点阅读