当前位置: 首页 > news >正文

重庆专业的网站建设公司哪家好制作网站需要什么软件

重庆专业的网站建设公司哪家好,制作网站需要什么软件,工具类网站设计,做网站参考文献在java Spring5通过声明式事务(注解方式)完成一个简单的事务操作中 我们通过注解方式完成了一个事务操作 那么 下面 我还是讲一下 基于xml实现声明式事务的操作 其实在开发过程中 大家肯定都喜欢用注解 因为他方便 这篇文章中的xml方式 大家做个了解就好 还是 我们的这张表 记…

在java Spring5通过声明式事务(注解方式)完成一个简单的事务操作中 我们通过注解方式完成了一个事务操作
那么 下面 我还是讲一下 基于xml实现声明式事务的操作 其实在开发过程中 大家肯定都喜欢用注解 因为他方便
这篇文章中的xml方式 大家做个了解就好

还是 我们的这张表 记号他们的余额 然后 我们的项目环境还是延续之前的那个
在这里插入图片描述
如果没有看我之前文章的朋友 可以先去看一下 java Spring5 搭建操作数据库事务环境跟着 把项目环境搭建一下

然后 我们来到 senvice 下的 transfAccoSenvice类 修改代码如下

package senvice;import dao.transfAccoDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;@Service
public class transfAccoSenvice {@Autowiredprivate transfAccoDao TransfAccoDao;//转账方法public void transferAccounts(int sponsorId, int recipientId, double money){Boolean paym = pay(money,sponsorId);if(paym){int i = 10/0;income(money,recipientId);System.out.println("交易完成");}}//支出方法public Boolean pay(double money,int userId) {String vacancies = CheckTheBalance(userId);double vacancie = Double.parseDouble(vacancies);if(money > vacancie) {System.out.println("余额不足");return false;}double settleAccounts = (vacancie - money);TransfAccoDao.updateMoney(String.valueOf(settleAccounts),userId);return true;}//收入方法public Boolean income(double money,int userId) {String vacancies = CheckTheBalance(userId);double vacancie = Double.parseDouble(vacancies);double settleAccounts = (vacancie + money);TransfAccoDao.updateMoney(String.valueOf(settleAccounts),userId);return true;}//查询指定用户余额public String CheckTheBalance(int userId){return TransfAccoDao.CheckTheBalance(userId);}
}

还是在transferAccounts中 用0做除数来模仿出一个异常

然后 我们 修改bean.xml 代码如下

<?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:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"><!-- 数据库连接池 --><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"destroy-method="close"><property name="url" value="jdbc:mysql:///test" /><!--对应SQLyog里的数据库--><property name="username" value="root" />            <!-- 用户名 --><property name="password" value="root" />        <!-- 密码 --><property name="driverClassName" value="com.mysql.jdbc.Driver" /></bean><!-- JdbcTemplate对象 --><bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"><!--注入dataSource属性--><property name="dataSource" ref="dataSource"></property></bean><context:component-scan base-package="senvice"></context:component-scan><context:component-scan base-package="dao"></context:component-scan><!-->配置事务管理器--><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref= "dataSource"></property></bean><!-- 配置通知 --><tx:advice id="txadvice"><tx:attributes><tx:method name="transfer*"/></tx:attributes></tx:advice><!-- 配置切入点和切面--><aop:config><aop:pointcut id="pt" expression="execution(* senvice.transfAccoSenvice.*(..))"/><aop:advisor  advice-ref="txadvice" pointcut-ref="pt"/></aop:config>
</beans>

关键的几行在于 tx:advic 配置通知 然后 tx:method中 name 我想让他指向的是 transferAccounts 就是我们模仿异常的那个方法 当然 你直接写 name=“transferAccounts” 自然是可以的 但我这个transfer* 表示 锁定所有 以transfer开头的 星号代表模糊搜索

然后 用aop:pointcut配合 切入点表达式 锁定了 senvice下的 transfAccoSenvice 中 所有的函数 *代表所有 (…)点方法参数

其他类 包括测试类 都不需要改
然后 我们打开测试类 运行代码如下
在这里插入图片描述
可以看到 我们这里 李四被减去200 打印出 11000 说明 第一段sql已经执行了 但因为事务 异常后应该回滚结果 所以李四的钱不会少 还是11200

我们到数据库中 刷新表并重新打开
在这里插入图片描述
可以看到 因为事务回滚 李四的钱并没有少
然后 我们到senvice 下的 transfAccoSenvice 将 int i = 10/0;干掉

然后运行测试类 结果如下
在这里插入图片描述
可以看到 没有异常的干涉 两端sql都执行成功了
那么 我们到数据库 刷新表 再重新打开
在这里插入图片描述
可以看到 没有异常 事务就正常提交了 我们的交易 也就正常完成啦

http://www.wangmingla.cn/news/1193.html

相关文章:

  • 任丘网站制作公司seo有些什么关键词
  • 公司网站建设的好处手机百度网页版登录入口
  • 宁波网站建设公司广告软文外链平台
  • 商场网站开发的项目分析百度竞价推广专员
  • 营销型网站建设项目需求表外贸网站平台都有哪些 免费的
  • 响应式网站开发asp宁波企业seo推广
  • 描述网站的含义优化搜狗排名
  • 网站建设开发费会计分录百度营销登录
  • html网页设计过程学seo如何入门
  • 橙子建站 推广世界足球排名最新
  • 软件营销网站数据推广公司
  • 云速建站可以建个人网站吗雅虎搜索引擎入口
  • 乌鲁木齐可以做网站的公司连云港seo优化
  • wordpress网站响应很慢佛山全市核酸检测
  • 高端定制网站设计公司引擎网站
  • 超市网站开发建设建议推广网络营销外包公司
  • 知乎网站建设入门书什么是网络营销?
  • 网站注册域名多少钱bt搜索引擎最好用的
  • 成都制作网站公司百度地图人工电话
  • 郑州整形网站建设sem是什么公司
  • 移动商城官网 积分兑换百度首页排名优化平台
  • 哪里有做空包网站的东莞疫情最新通知
  • 宝塔网站做301重定向北京seo不到首页不扣费
  • 好品质自适应网站建设网站建设的数字化和互联网化
  • 竞价网站做seo南通百度网站快速优化
  • 卡纸做荷花网站国内搜索引擎有哪些
  • 域名解析怎么设置海南百度推广seo
  • 南京 公司网站制作个人网站的制作
  • 自己如何建设网站聊天室优化方法
  • html免费代码网站爱站网关键词查询