美文网首页Java 杂谈程序员
撩课-JavaWeb之事务与批处理

撩课-JavaWeb之事务与批处理

作者: 撩课学院 | 来源:发表于2018-12-24 08:43 被阅读19次

    事务

    事务问题

    建立一张个人账户表
    zs与ls进行转账
    
        1.检查zs账户余额
        2.减少zs账户1000
        3.增加ls账户1000
    
        示例如下:
    
    
    出现异常情况
      在第2步和第3步之间弄一个异常 int a = 1 / 0;
      一个人的账户减少,另一个没有加
    

    处理事务

    默认情况下, 事务是自动提交的
    要设置为手动提交
    处理事务过程
    
     关闭自动提交
        conn.setAutoCommit(false);
    
     没有问题时,提交事务 
        conn.commit();
    
     出现异常时,进行回滚操作
        conn.rollback()
    
     回滚之后,事务结束。释放资源
     出现异常,没有提交,也不会更新数据库,但是会占用资源
         ew to-d
     所以要出现异常时,进行回滚操作
     只有增、册、改才需要事务,查询不需要事务
     以后发现自己写的代码是正确的,测试也成功,
    但是数据库当中的数据不变
    
     事务没有提交
     InnoDB才支持外键和事务。MyISAM不支持外键和事务
    
     示例如下:
    
    

    设置事务的隔离级别

    
        conn.setTransactionIsolation(Connection.TRANSACTION_REPATABLE_READ)
    
    

    批处理

    什么是批处理?
    
    一次性执行多条Sql语句,允许多条语句一次性提交给数据库批量处理
    比单独提交处理要效率高
    
    
    批处理方法
    
    addBatch(String)
    添加需要批处理的sql语句
    executeBatch()
    执批处理
    
    
    支持情况
    mysql默认情况下是不支持批处理的
    从5.1.13开始,添加了一个rewriteBatchedStatement参数
    之前插入10条数据要17.4秒
    从5.1.13开始提高到了1.6秒
    
    
    

    示例:

    添加参数:

    相关文章

      网友评论

        本文标题:撩课-JavaWeb之事务与批处理

        本文链接:https://www.haomeiwen.com/subject/hlmgkqtx.html