发布网友 发布时间:2022-03-27 00:39
共3个回答
热心网友 时间:2022-03-27 02:08
在计算机学涉及到‘事务’这个词通常就是指数据库事务?
追根溯源,其实事务不光指数据库事务。
但是,我们软件开发中的事物如无特别说明,那就是数据库事务了
spring 的事务处理?
首先,我们要明白数据库事务 ,这个概念。
下面是一个事务操作实例
在JDBC的操作中,手动作一个事务操作,
------
try{
java.sql.Connection conn= 获得一个连接;
conn.setAutoCommit(false);
.....具体的数据库操作(多个)
conn.commit();
}catch(Exception ex){
conn.rollback();
}
------
当具体的数据库操作中有一个发生异常,那么整个事务就回滚,
所有的增删改操作都将无效。
而spring 配置式事务要达到的效果是:
1,对指定的类的方法添加事务,
2,配置管理,不需要每个数据库造作都像上面一样写那么多代码,
3,spring的配置式事务可以吧多个操作数据库的方法配置在一个事务中,
这样灵活性更加高了。
热心网友 时间:2022-03-27 03:26
数据库事务的4个特性: 一致性(consistency):事务操作之后,数据库所处的状态和业务规则是一致的;比如a,b账户相互转账之后,总金额不变; 隔离性(isolation):操作中的事务不相互影响; 持久性(rability):事务提交后被持久化到数据库. 数据并发产生的问题: 脏读:一个事物a读到了另一个事务b未提交的数据,则b回滚后,a读取的数据无效; 不可重复读:一个事物a第二次读到了另一个事务b修改的数据; 幻读:在统计数据的事务a两次统计的数据不一致(因为有其他事务新增数据) 第一类丢失更新:a事务回滚覆盖了b事务提交的数据; 第二类丢失更新:a事务覆盖了b事务提交的数据. 事物隔离级别: READ_UNCOMMITED, READ_COMMITED, REPEATABLE_READ, SERIALIZABLE; 一般情况下READ_COMMITED足够了. spring事务管理相关的接口: TransactionDefinition:代表一个事物。
热心网友 时间:2022-03-27 05:01
本质上其实是同一个概念,spring的事务是对数据库的事务的封装,最后本质的实现还是在数据库,假如数据库不支持事务的话,spring的事务是没有作用的.数据库的事务说简单就只有开启,回滚和关闭,spring对数据库事务的包装,原理就是拿一个数据连接,根据spring的事务配置,操作这个数据连接对数据库进行事务开启,回滚或关闭操作.但是spring除了实现这些,还配合spring的传播行为对事务进行了更广泛的管理.其实这里还有个重要的点,那就是事务中涉及的隔离级别,以及spring如何对数据库的隔离级别进行封装.事务与隔离级别放在一起理解会更好些.以上回答希望能帮助到你.