aguai0 2010-03-11 11:15
浏览 128
已采纳

hibernate和spring事物管理的疑惑?

hibernate和spring都对事物进行了管理,强烈想知道hibernate和spring之间的事物又是怎么管理的呢,它们之间有什么级别的操作吗?

  • 写回答

4条回答 默认 最新

  • xwz_adolf 2010-03-11 13:38
    关注

    1、Hibernate:
    a、在我们执行一条sql语句:
    insert into a(id ,name) valus(1,'张三');[code="java"][/code]
    假于该语句是在数据库中直接执行,那么可以立刻将该条记录插于数据库。
    但此时我们是在程序中执行该语句的,精确的将是在java语言中执行该sql语句。
    java语言不能直接连接数据库,我们是通过jdbc连接数据库的
    1,jdbc连接数据库默认是不立即将数据插入数据库,只用当你commit后才将数据插入数据库;
    2,根据1所以在程序中我们要认为的执行commit ,这样数据才真正插于数据,同时如果一个方法里面有多条sql语句,其中一条出现错误,那么久需要回滚了。

    从上面可以看出来在java程序中人为控制事物是一件很繁琐的事情。同理,hiberante也是这样,执行完成sql语句后需要提交commit。
    

    此时我们就会想,可不可有个工具自动帮我们管理事物?

    2.spring:
    由于人为控制hibernate事物很繁琐,所以我们将事物交给了spring统一管理。但是spring也不是万能的,你要告诉他们不同的方法,该使用这样的事物
    如是出现了:save,del,update等开头的方法使用一个事物,以:query,select,get等开发的方法又使用的一个事物。

    大概意识就这样,想详细了解 事件,先了解数据库事务,再根据你系统需要那个级别的事务,来具体设置程序的事务级别!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥20 Python安装cvxpy库出问题
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥15 python天天向上类似问题,但没有清零
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题