博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
小白的进阶之路9
阅读量:7091 次
发布时间:2019-06-28

本文共 1196 字,大约阅读时间需要 3 分钟。

---恢复内容开始---

今天开始学习spring的事物管理

先写一个转账的例子:

动手之前,先把逻辑搞清楚:

持久层:

    AccountDao(){ ------》接口

      public void in(String in,double money);

      public void out(String out,double  money);

}

    AccountDaoImpl{-------》实现类,配置文件需要注入

    private serviceDao sd;------->配置文件注入时,采用ref

    void in(){}

    void out(){}

}

 

业务层:

      serviceDao(){-----》接口

      public void pay(String in,String out,double money);

}

      ServiceDaoImpl(){----》实现类

        private JdbcTemplate jdbcTemplate;-------》这是引用对象,需要用ref注入(这个注入之前一定要记得注入数据库连接。然后此对象引入ref  DataSource。)

        

       public void in(String in,double money);//\这两个是重写方法。

      public void out(String out,double  money);

}

 

 业务层依赖持久层。

 jdbc是java数据库连接,其过程是:

connection(存取事务)-------》c3p0连接池(存取连接,需要注入数据库)------》plamtransactionmanager平台事务管理器(管理事务,需要注入连接池)

事物的传播特性

以上算上复习一下数据库的知识,话题回到我们之前做的转账小例子。

我们都知道,数据库的一大特性就是事务,那么?何为事务?

就是要么一起成功,要么一起失败。就上面的例子而言,在没有任何保证的情况下,如果遇到异常,比如

就会出现一方加钱,一方不减钱的情况,所以说,此时需要一个事务平台管理器。所以xml配置的正确写法是

 

第一步:建立数据库连接

第二步:配置jdbc模板,模板中需要注入数据库。

第三步;:建立平台事务管理器

第四步:配置通知和切面。

OK!!!大功告成。。。。

这时,遇到异常时,不会出现错误的转账情况。

 下面开始用注解的方式完成事务,不需要配置通知和切面,改成如下配置,然后在需要加事务的service层的类或方法上,加上@transactional 注解7

 

 

 

 

 

 

 

---恢复内容结束---

转载于:https://www.cnblogs.com/hanmengdi/p/9427009.html

你可能感兴趣的文章
Java Singleton 单例模式
查看>>
解决优盘无法格式化
查看>>
【算法】系统和文件操作
查看>>
IIS7多域名绑定同一物理目录,设置不同默认文档的最佳解决方案
查看>>
QTime中currentTime()的使用方法
查看>>
Arcgis api For silverlight 加载QQ地图
查看>>
使用 JavaScript File API 实现文件上传
查看>>
windows8 Metro App用Javascript来调用C#的library
查看>>
JSF和Struts的区别概述
查看>>
HDU 3903 - Trigonometric Function
查看>>
Flash Builder 4的快捷方式和调试技巧
查看>>
Entity Framework中的Identity map和Unit of Work模式
查看>>
吃干抹净提上裤子就甩
查看>>
oracle打补丁步骤简介
查看>>
tune 06 Database Configuration and I/O Issues
查看>>
1036: [ZJOI2008]树的统计Count (树链剖分)
查看>>
Jquery radio选中
查看>>
Memcached 的一些用法
查看>>
python及扩展程序安装
查看>>
在北京公司要多长时间才可以申请摇车牌号
查看>>