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

西安做网站建设信息发布

西安做网站建设,信息发布,做外贸如何建立网站平台,做公司的宣传网站需要注意什么1 基本概念 事务:将一组操作抽象成一个不可再分的单位,这组操作可以有很多个,但是它们要么就全部都执行成功,这时算作事务执行成功;要不其中有操作执行失败,则其余操作都视为执行失败,这时候需…

1 基本概念

事务:将一组操作抽象成一个不可再分的单位,这组操作可以有很多个,但是它们要么就全部都执行成功,这时算作事务执行成功;要不其中有操作执行失败,则其余操作都视为执行失败,这时候需要将已执行的方法撤回;

事务的概念在很多地方都有涉及,特别是在数据库操作上面十分重要,因为这涉及到保障数据一致性的问题;

Spring 中的事务主要是保证持久层或者业务层操作的。

2 Spring 中使用事务管理

2.1 配置事务管理器

package cn.edu.njust.config;import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.PlatformTransactionManager;import javax.sql.DataSource;/*** -- coding: UTF-8 -- *** @author wangs* @description: 数据源 Druid* @date 2023/11/15 16:37*/
public class JDBCConfig {@Value("${jdbc.driver}")private String driver;@Value("${jdbc.url}")private String url;@Value("${jdbc.username}")private String username;@Value("${jdbc.password}")private String password;@Beanpublic DataSource getDataSource() {DruidDataSource dataSource = new DruidDataSource();dataSource.setDriverClassName(driver);dataSource.setUrl(url);dataSource.setUsername(username);dataSource.setPassword(password);return dataSource;}// 配置事务管理器,mybatis使用的是jdbc事务@Beanpublic PlatformTransactionManager transactionManager(DataSource dataSource) {DataSourceTransactionManager transactionManager = new DataSourceTransactionManager();transactionManager.setDataSource(dataSource);return transactionManager;}
}

1)getDataSource():方法是获取相对应数据源,比如这里获取的是 Druid 数据源;
2)transactionManager():这个方法是返回获取一个事务管理器,想要开启 Spring 的事务,必须要配置这个事务管理器;

2.2 启用事务管理

主要是在配置类中使用注解声明启用@EnableTransactionManagement

package cn.edu.njust.config;import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.context.annotation.PropertySource;
import org.springframework.transaction.annotation.EnableTransactionManagement;/*** -- coding: UTF-8 -- *** @author wangs* @description: Spring配置类* @date 2023/11/15 16:36*/
@Configuration
@ComponentScan("cn.edu.njust")
@PropertySource("classpath:jdbc.properties")
@Import({JDBCConfig.class, MyBatisConfig.class})
@EnableTransactionManagement
public class SpringConfiguration {
}

2.3 使用注解声明需要被管理的方法

@Transactional
public void transfer(String out, String in, Double money) {accountDao.outMoney(out, money);// 在两个操作之间制造一个错误System.out.println(1 / 0);accountDao.inMoney(in, money);
}

1)这个注解声明后,会告知 Spring 管理该事务;
2)声明在方法上:这个方法被事务管理
3)声明在类上/接口上:这个类/接口的实现类中的所有方法都被事务管理

2.4 事务的传播行为

在 Spring 中,如果有使用@Transactional 注解注明多个不同的方法,这些方法的事务会被统一管理,即一个方法中执行失败,会将另一个方法中的事务也回滚,但是实际上希望两个方法的事务分开,就需要在@Transactional 参数中设置

//propagation设置事务属性:传播行为设置为当前操作需要新事务
@Transactional(propagation = Propagation.REQUIRES_NEW)

3 知识汇总

**注解 **说明
@Transactional注解需要放入事务管理器的方法或类
@EnableTransactionManagement在配置类中开启事务管理
http://www.ds6.com.cn/news/98755.html

相关文章:

  • 音乐介绍网站怎么做seo服务的内容
  • 广州网站开发哪家专业百度网站链接提交
  • 能在线做初中题的网站我想做app推广代理
  • 长春网站制作培训优化设计七年级下册数学答案
  • 招聘网站怎么做线下活动在线生成个人网站
  • 深圳有哪些软件公司什么是seo和sem
  • 做网站的没有进项票怎么办江苏网页定制
  • 做淘宝店铺装修的公司网站seo关键词快速排名软件
  • 项目管理软件 project教程seo是什么意思职业
  • 我的世界日本怎么做视频网站百度导航下载2020新版语音
  • 为什么说做网站赚钱网站推广的案例
  • markdown直接做网站b2b免费发布信息网站
  • 合肥到黄山旅游攻略长沙网站seo诊断
  • 房产网站建设seo自学网官网
  • 建一个动物网站怎么做软文范例大全100字
  • 什么是seo站内优化网络广告营销的特点
  • 电脑本地网站建设手机百度账号登录入口
  • 南通市建设局网站直播营销策略有哪些
  • 公司网站制作费用申请网络营销培训
  • 阿里云网站建设 部署与发布答案网站推广和宣传的方法
  • 安徽网站建设公司足球进球排行榜
  • 幼儿园网站建设总结站长基地
  • 中国供应商网是免费的吗seo工具包括
  • wordpress模板如何安装教程视频seo的中文含义是什么
  • 重庆公司网站建设价格网络舆情处置的五个步骤
  • 关于建网站做淘宝联盟社群运营
  • 长沙做网站建设百度客服在线咨询
  • 网站转移动版免费个人网站模板
  • 发布网站需要备案吗google搜索引擎下载
  • 桂林dj网站百度一下网页版搜索引擎