zoukankan      html  css  js  c++  java
  • 在代码中,插入数据到数据库时,如果不使用事务,将会导致速度极慢

    今天测试,150条数据,调用jdbcTemplate.batchUpdate语句时,未开启事务的情况下,6m左右才能执行完,开启事务后,几百毫秒即可执行完,差距是非常大的。

    因为是在一个线程池中执行的,所以任务是new出来的,不能作为bean来处理,所以不能使用注入事务的方式,只能手动调用事务管理器。

    首先,从bean中获取事务管理器bean

    ApplicationContext().getBean(DataSourceTransactionManager.class);

    其次,new一个事务定义

    DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW); // 事物隔离级别,开启新事务

    开启事务
    TransactionStatus status = dataSourceTransactionManager.getTransaction(def); // 获得事务状态

    提交事务

    dataSourceTransactionManager.commit(status);

    回滚事务

    dataSourceTransactionManager.rollback(status);

    至于事务为何影响这么大,等待以后去研究咯

  • 相关阅读:
    数组塌陷现象
    深浅拷贝的区别
    冒泡排序,选择排序的应用
    JavaScript双重循环的嵌套
    Css Grid网格布局
    css3动画详细介绍
    Python tkinter Label Widget relief upload image
    XXXFD
    XXX1
    Python爬取一个简单网页的HTML代码
  • 原文地址:https://www.cnblogs.com/guangshan/p/4766431.html
Copyright © 2011-2022 走看看