小白的进阶之路9

hanmengdi hanmengdi     2022-12-20     678

关键词:

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

今天开始学习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

技术分享图片

 

 

 

 

 

 

 

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

小白的进阶之路14

---恢复内容开始---servlet是Javaweb的三大组件之一。三大组件:servlet,filter,lisoner客户端通过服务器想浏览器发出请求。我们所写的AServlet、BServlet,都是由我们实现servlet接口的实现类。servlet是单例的,一个类一个servlet,他们的... 查看详情

小白的进阶之路2

 今天遇到的第一个问题就是我写的jsp代码在引进css样式的时候,出现了问题,我引不进去。试了好多次,起先的代码是<link rel="stylesheet" type="text/css"src="<c:urlvalue=‘/css/register.jsp‘>">.后来将register.css移到和jsp... 查看详情

小白的进阶之路6

大概的了解了一下关于三大框架,首先说一下是什么,也就是spring,springMVC,还有mybites,另外一个三大框架就是ssh,即spring,Struts2,还有hibernate。我们都知道在做项目的时候都要分为三个模块,web层(逻辑层),service层(服务... 查看详情

小白的进阶之路7

 注解:昨天学了配置文件,感觉还不错,确实之前new的方式好了很多,今天继续学习注解。OK,开始进的入门案例第一步,配置扫描注解,注意:其中base-package 后面的参数是应new的对象所在包。第二步,在需要注解的实... 查看详情

小白的进阶之路12

---恢复内容开始--- 昨天上午弄了一个简单的页面,就是关于客户管理系统,想着实现保存功能,可是问题卡在页面跳转上,从输入信息页面就是跳不到saveservlet,将用户属兔的信息用表单传给servlet,然后servlet读取后,用map... 查看详情

小白的进阶之路16

cookie:是服务器产生保存到浏览器,是http协议制定的,下一次浏览器在请求服务器时,浏览器将上一次访问产生的cookie在还给服务器。cookie是一个键值对,服务器保存cookie的响应头。cookie不能跨浏览器。cookie的属性:name:value... 查看详情

小白进阶之路-滑雪-暑假训练(代码片段)

 搜索依然爆炸的烂,继续加油吧。 题解:按照h排序的大根堆,每次寻找四周h小的接上dp串。#include<iostream>#include<queue>#include<algorithm>usingnamespacestd;/**time:2020.7.23*thinking:从h大的向h小的寻找,接上上一个的最... 查看详情

小白的进阶之路13

 昨天说到了级联保存,那么什么是级联保存。我们都知道,双向保存就是customer和linkman都要保存,那么单项保存呢?单向保存就是只保存一方,而不需要保存另一方,但是这样会出异常,这是就需要级联保存只需要保存custom... 查看详情

小白进阶之路-hdu-2594(代码片段)

题意:给你两个字符串s1,s2,让你寻找最长s1前缀和s2后缀的匹配长度,若长度大于0,且输出最长匹配s1前缀。 #include<cstdio>#include<cstring>#include<cmath>#include<algorithm>usingnamespacestd;constintmaxn=1e5+100;intnxt[m 查看详情

小白进阶之路-cf.edu-91-b(代码片段)

题意:一段只包含‘R,S,P‘的字符串,希望你输出一段字符串使得无论起始位置pos在哪,你胜率最大的组合。错误思路:分字符种类情况分析。(错误原因,只是找到单次比较最大值,但不是全局比较最大值)正确思路:分字符... 查看详情

数据分析师教程_从小白到“数据分析师”大神进阶之路

...途无忧网:http://www.xuetuwuyou.com课程特色——成长六部曲小白脱白篇—>数据分析篇—>数据挖掘篇—>Python加薪冲刺篇—>大数据分析师进阶篇——>精英项目实战篇一、课程目标数据分析师秉承着总结凝练最先进的商业数... 查看详情

厚着脸皮求领导写了一篇java小白进阶大牛之路!!!

缘起&应朋友之邀 2019年已经过去两个月了,应朋友之邀,写写自己的个人经历,与其说经历还不如是自我的总结与反思。2012年2月份只身一人拖着行李箱来到北京库巴科技有限公司实习,那时候库巴处在高速发展的阶段,... 查看详情

javascript进阶之路1

...了头依然不见大明湖畔的夏雨荷。当年我还是个javascript小白,项目经理分下来一个验证表单功能的任务,内容不多,仅需要验证用户名、邮箱、密码等。我一看soeasy,于是便写下几个函数。1functioncheckName(){2//验证姓名3}45functionch... 查看详情

小白进阶之路-xorto-暴力枚举优化(代码片段)

  题目链接:https://ac.nowcoder.com/acm/problem/14247 思想:暴力枚举两个区间的左右端点时间复杂度很高,可如果枚举一个区间,问题会简化。     维护到i处的异或和(pre[i],类似于桶排序中的桶,所以num... 查看详情

小白进阶之路-codeforces-616d(代码片段)

链接:https://codeforces.ml/problemset/problem/616/D题意:寻找最长字串,使得子串中不同数字的个数不超过K。 Solution:尺取法,用数组vis[]存储当前字串各数字个数,num用来存储当前字串中不同数字个数,外层循环保证右边界到达n... 查看详情

selenium之webdriver详解——小白进阶之路(二)

参考技术A笔记:01.设置元素等待时间自动化测试的时候,元素定位没有错,但是跑脚本的时候却报错了例如,登录的时候要等登录页面加载出来才能输入用户名和密码selenium设置元素等待时间的3种方式及区别1.sleep()--固定等待时... 查看详情

小白进阶之路-fzu-1695-dp(代码片段)

题目:  简单错误思路:  dfs:每个状态都需要遍历,所以最坏2^50,TLE  类似于01滚动:考虑到空间存不下就没有实际行动,大概率MLE 正确答案:  类似于第二种状态,不过是状态压缩,原地滚动,每一步都利... 查看详情

小白进阶之路-fzu-1695-dp(代码片段)

题目:  简单错误思路:  dfs:每个状态都需要遍历,所以最坏2^50,TLE  类似于01滚动:考虑到空间存不下就没有实际行动,大概率MLE 正确答案:  类似于第二种状态,不过是状态压缩,原地滚动,每一步都利... 查看详情