美文网首页
无废话mybatis十(事务)

无废话mybatis十(事务)

作者: 毛仑上保罗先生 | 来源:发表于2018-11-17 23:31 被阅读0次

    事务的重要就不说了, 他有ACID特性: 即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)
    mybaits包含两种类型的事务,


    图片.png

    是的没错就是 type="JDBC|MANAGED"
    (1)使用JDBC的事务管理机制,就是利用java.sql.Connection对象完成对事务的提交
    (2)使用MANAGED的事务管理机制,这种机制mybatis自身不会去实现事务管理,而是让程序的容器(spring)来实现对事务的管理, 也就是说需要用到容器提交事务才能起作用,否则是不可能有commit操作就能对数据库起作用的(但是我个人觉得这有点操蛋, 看下面问题)

    但是我们平时在用mybatis的时候确定都能明白吗 ,比如为啥要回滚, 在什么时候回滚, 不说了 , 直接代码说明


    图片.png
    如上所述: 如果不commit的话其只会在回话中显示成功, 但是永远都不会和数据库有相关操作, 所以我们能够想到我们一般在做读写分离的时候将delete, update, insert放在一个数据库中操作, 对的没错 ,删除, 更新, 添加都需要commit才能作用! 如果将回话close将直接回滚事务
    事务对批量操作的影响

    如果是事务操作 ,如果操作成功的话其会返回操作成功的条数, 但是如果其中有一条是失败的所有都失败
    https://www.cnblogs.com/grey-wolf/p/7117036.html

    问题(可能还没研究深入 , 请各位看官多指教):

    但是我个人的研究可能还存在问题, 在将事务类型设置成MANAGED的时候, 我也没有用别的容器, 但是还是对数据库起作用了


    图片.png

    相关文章

      网友评论

          本文标题:无废话mybatis十(事务)

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