初识事物管理

在plsql中for update每天都会用上十几次事务管理,java中还是第一次修改。 用的是spring的编程式事物管理,主要事物代码:

this.getTransactionTemplate().execute(new TransactionCallback() {
			public Object doInTransaction(TransactionStatus arg0) {
				List acList=(List)delMap.get(Dict.LIST);
				for (int i = 0; i < acList.size(); i++) {
					Map oneAcMap=(Map)acList.get(i);
	....................................

  

org.springframework.transaction.support中的 TransactionTemplate有一个重要的方法execute(TransactionCallback action) TransactionCallback。

顾名思义,就是事务回调然后查到TransactionCallback。发现这是一个接口(这也必须是接口,因为任务都是自己具体定义的)

里面只有一个方法:doInTransaction(TransactionStatus status),ransactionStatus,继续顾名思义,也就是事务状态。

对于选中的几张卡会调用一系列捆绑的进行校验和接触关联。然后对主要的表account进行状态修改:

getSqlMap().update("setting.updatedRelaAct", oneAcMap);
	<update id="updatedRelaAct" parameterClass="java.util.HashMap">
    update PACCOUNT set AcState=‘1‘ where AcNo=#AcNo# and BankSeq=#_BankSeq# and CifSeq=#_CifSeq#
	</update> 

以为到这里就结束了?

BankSysRule sendCoreRule=cachedBankRuleAttribute.getResourceWithNull((PerUser) finalContext.getUser(), CONSMSG.RULETYPE_TRSDEF, "RelaActDelete.SendCore");
if(sendCoreRule!=null&&"Y".equals(sendCoreRule.getRuleDef())){//是否把信息提交核心

bankrule中ruledef居然是Y,是谁动了我的数据库?为什么要核心帮我解绑,AcState在我这里,而且我for updated为零后正常显示了。

事物不应该是这样吗?为什么没有try没有回滚
transactionTemplate.execute(new TransactionCallback() {
            public Object doInTransaction(TransactionStatus status) {
                try {
                    // 数据库操作1
                    // 数据库操作2
                } catch (Exception e) {
                    status.setRollbackOnly();
                    e.printStackTrace();
                }
                return null;
            }
        });

  

时间: 2024-11-12 14:17:43

初识事物管理的相关文章

spring事物管理--声明式(AspectJ)(推荐使用)

1.表结构及数据 2.需引入的jar包: 3.业务层(Service).持久层(Dao)接口与实现类 Service接口: //转账案例业务层接口 public interface AccountService { /** * @param out :转出账号 * @param in :转入账号 * @param money :转账金额 */ public void transfer(String out,String in,Double money); } Service实现类: //转账案例

Spring学习——声明式事物管理

1.什么是事物? 事务是一组操作的执行单元,相对于数据库操作来讲,事务管理的是一组SQL指令,比如增加,修改,删除等,事务的一致性,要求,这个事务内的操作必须全部执行成功,如果在此过程种出现了差错,比如有一条SQL语句没有执行成功,那么这一组操作都将全部回滚! 2.事物的四大特性: Atomic(原子性):要么都成功,要么都失败; Consistent(一致性):数据应该不被破坏; Isolate(隔离性):用户间操作不相混淆 ; Durable(持久性):永久保存 3.实际开发中,需要事物控制

声明事物管理器

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p&q

[原创]java WEB学习笔记109:Spring学习---spring中事物管理

博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ------------------------------------------------------------------------------------------------------------------

Spring中的事物管理,用 @Transactional 注解声明式地管理事务

事物: 事务管理是企业级应用程序开发中必不可少的技术,  用来确保数据的 完整性和 一致性. 事务就是一系列的动作, 它们被当做一个单独的工作单元. 这些动作要么全部完成, 要么全部不起作用 事务的四个关键属性: 原子性:事务是一个原子操作, 由一系列动作组成. 事务的原子性确保动作要么全部完成要么完全不起作用. 一致性:一旦所有事务动作完成, 事务就被提交. 数据和资源就处于一种满足业务规则的一致性状态中. 隔离性:可能有许多事务会同时处理相同的数据, 因此每个事物都应该与其他事务隔离开来,

集成Spring事物管理

单独使用MyBatis对事物进行管理 前面MyBatis的文章有写过相关内容,这里继续写一个最简单的Demo,算是复习一下之前MyBatis的内容吧,先是建表,建立一个简单的Student表: create table student ( student_id int auto_increment, student_name varchar(20) not null, primary key(student_id) ) 建立实体类Student.java: public class Studen

spring 事物管理

1 在spring中支持编程式事物和声明式事务管理,通常使用声明式事物管理,声明式的事物管理是基于aop机制实现的使用很方便. 2 spring支持单一数据库资源的事物管理和跨越多个数据库资源的事物管理既JTA全局事物. 3 在spring中提供了多个事物管理类,常用的是;DataSourceTransactionManager,HibernateTransactionManager和JtaTransactionManager. DataSourceTransactionManager :数据源

spring事物管理--声明式(AspectJ)注解实现 (推荐使用)

1.表结构及数据 2.使用的jar包 3.service.Dao层接口与实现类: Dao接口: //转账案例持久层接口 public interface AccountDao { /** * @param out :转出账号 * @param money :转账金额 */ public void outMoney(String out,Double money); /** * @param in :转入账号 * @param money :转账金额 */ public void inMoney(

Spring中的事物管理,基于spring的bean的配置

很多东西与上边的相同,这儿只简介: 导包... 数据库中建立三个表... 建立存放连接数据库的file文件:jdbc.properties: ----------------------------------------------------------------- com.atguigu.spring.tx.xml包下建立, 接口:BookShopDao 类:BookShopDaoImpl 继承于接口,BookShopDao 异常处理类:BookStockException 测试类:JU