zoukankan      html  css  js  c++  java
  • hibernate之事务处理

    四个方面:事务的性质,事物的隔离级别,hibernate配置事务的隔离级别,使用事务小案例

    1. 事务的性质:

           四种性质:原子性,一致性,隔离性,持久性。

           原子性:原子,不可再分。一个操作不能分为更小的操作。要不全部执行,要不全不执行。

           一致性:事务在完成时,必须使得所有的数据保持一致的状态。(ps:数据状态重点,与开始事务前一样的状态)

           隔离性(并发才考虑):事务查看数据时数据所处在的状态,要么是另一个并发事务修改它之前的状态,要么是另一个并发事务修改它之后的状态,事务不会查看中间状态的数据

        持久性:事务操作完成之后,它对于系统的影响是永久性的(执行了就执行了,没有撤回)(破坏数据也会执行)

    2. 事物的隔离级别:

         隔离级别分为三种:脏读,不可重复读,幻读。

        脏读:读取了未提交事务中的数据

        不可重复读:对于数据库中某个数据一个事务范围内多次读取同一数据(并发情况下,两次分别读取并发事务前与后的值)却有不同的值。

        幻读:事务发生中期被另一个事务夺去cpu资源,改变了数据。

    3. hibernate配置事务的隔离级别

       四种属性

       1(0001).读未提交:最低的隔离界别,最没用,最快。

       2(0010).读已提交:可避免脏读,不可避免不可重复读。

        4(0100).可重复读:可以避免不可重复读,可以避免脏读(mysql默认)。

        8(1000).串行化:最强大,三种都可以避免(速度最慢)

     hibernate主配置文件hibernate.cfg.xml配置

       <property name="hinernate.connection.isolation">4</property>

    配置事务(session与当前线程绑定)---自动帮你创建一个session对象(在Service中可以开启事务。)整个线程用同一个session

    <property name = "hinernate.connection.isolation">

    4. 使用事务小案例

        点击按钮,根据id查找user--->找到user的名字改变,找不到则不做任何改变退出。

  • 相关阅读:
    #2019120500018-LG 小雨的数字游戏
    假期Noip笔记
    #2019120500016 逆序对与归并排序
    #2019120500015-LG 全排列
    #2019120500014-LG 采药
    #2019120500013-LG 合并果子
    二分与三分
    #2019120500012-LG 小鱼比可爱
    #2019120500011-LG 约瑟夫问题&玩具谜题
    HDU 5738 共线点集
  • 原文地址:https://www.cnblogs.com/ZTYCandy/p/10593376.html
Copyright © 2011-2022 走看看