springmvc事务控制批量插入多张表格
来源:互联网 发布:qq三国90js单刷孟获 编辑:程序博客网 时间:2024/05/21 21:46
@Componentpublic class SynchronizationDataImpl implements SynchronizationData { private static final Logger logger = LoggerFactory.getLogger(SynchronizationDataImpl.class); @Autowired private ApplicationSumaryMapper applicationSumaryMapper; @Autowired private ContactPhoneMapper contactPhoneMapper; @Autowired private MiddleFieldMapper middleFieldMapper; @Autowired //① 注入上下文 private ApplicationContext context; private SynchronizationData synchronizationData;// 新的bean对象可以完成独立的事务 //通过上下文重新获取bean对象 @PostConstruct private void setSynchronizationData() { synchronizationData = (SynchronizationData) context.getBean("synDataTask"); } //需要同步总条数 private long totalNumber = 0; //需要同步的最大进件id; private long maxSid = 0; //当前已经同步的sid private long currentSid = 0; private long maxPage = 0; //每页删除条数 private long pageNumber = 500; @Override public void startSynData() { for (; i <= maxPage; ) { long time1 = System.currentTimeMillis(); if (isSynStart(currentSid, maxSid)) { List<ContactPhone> contactList = new ArrayList<ContactPhone>(); List<MiddleField> middleList = new ArrayList<MiddleField>(); List<ApplicationSumary> synDataList = new ArrayList<ApplicationSumary>(); //开始分页查询,这里会开启一个完整的事务我们理解为父事务 i = synchronizationData.synDataByPage(i, contactList, middleList, synDataList); JedisUtil.setString("synData_currentPage", i + ""); } else { //不符合同步条件,啥也不做 break; } } } @Transactional @Override public long synDataByPage(long i, List<ContactPhone> contactList, List<MiddleField> middleList, List<ApplicationSumary> synDataList) { synDataList = applicationSumaryMapper.getSynData(0, pageNumber, currentSid, maxSid); if (synDataList.size() > 0) { //遍历集合组装数据 prepareDataForBatchInsert(contactList, middleList, synDataList); try { contactPhoneMapper.batchAdd(contactList);//数据库事务A middleFieldMapper.batchAdd(middleList); //数据库事务B i++; } catch (Exception e) { throw new RuntimeException(); } } return i;}
}
说明:独立父事务的开启会保证事务A和事务B同时成功才会提交事务,否则会回滚。
阅读全文
0 0
- springmvc事务控制批量插入多张表格
- Spring控制多张数据表同时提交的事务操作
- FMDB事务批量插入数据
- Yii2 开启事务 批量插入
- SpringMVC+mybatis+oracle 批量插入
- Mysql 批量插入 事务插入 性能对比
- 批量插入之分批事务插入
- Mysql批量插入事务插入性能对比
- SpringMVC+ibatis数据库事务控制
- SpringMVC 手动控制事务提交
- SpringMVC 手动控制事务提交
- SpringMVC 手动控制事务提交
- 一张表插入和批量插入另一张表
- spring springmvc mybatis 整合批量操作,批量更新,批量插入
- 八、javaweb多表插入的事务控制
- android批量插入数据(使用事务)
- android批量插入数据(使用事务)
- 使用事务操作SQLite数据批量插入
- LINUX安装实验报告
- numpy中dot、multiply和asterisk的区别和联系。
- 大数据产品推荐:易鑫大数据风控平台
- Unity3d鼠标拖拽物体实现任意角度自旋转
- 697. Degree of an Array
- springmvc事务控制批量插入多张表格
- @Generated源码翻译
- Spring Cloud Config-Git后端
- CSP 2017-09
- WPS2013开发工具中的VBA为灰色不可用状态的解决方法
- Deep Learning回顾之LeNet、AlexNet、GoogLeNet、VGG、ResNet
- 聚沙成塔--爬虫系列(四)(爬取糗事百科段子)
- Prolog教程
- Swing中菜单栏JToolBar的使用