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等开发的方法又使用的一个事物。大概意识就这样,想详细了解 事件,先了解数据库事务,再根据你系统需要那个级别的事务,来具体设置程序的事务级别!
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
- ¥20 Python安装cvxpy库出问题
- ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
- ¥15 python天天向上类似问题,但没有清零
- ¥30 3天&7天&&15天&销量如何统计同一行
- ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
- ¥15 C#调用python代码(python带有库)
- ¥15 活动选择题。最多可以参加几个项目?
- ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
- ¥15 vs2019中数据导出问题