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


    今天测试,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);

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

  • 相关阅读:
    linux固定ip设置
    经典shell面试题
    shell学习笔记
    从tcp到netty(二)
    Mysql复习
    从tcp到netty(一)
    浏览器展示图片(非下载)- java
    异常总结
    反射获取属性值并设置属性值
    TreeMap解析
  • 原文地址:https://www.cnblogs.com/guangshan/p/4766431.html
Copyright © 2020-2023  润新知