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

b站推广网站nba智库济南网站推广优化

b站推广网站nba智库,济南网站推广优化,做投票页面什么网站好,东营 网站建设一、事务的常识 1、事务四特性(ACID) A 原子性:事务是最小单元,不可再分隔的一个整体。C 一致性:事务中的方法要么同时成功,要么都不成功,要不都失败。I 隔离性:多个事务操作数据库中同一个记录或多个记录时,对事务进…

一、事务的常识

1、事务四特性(ACID)

A 原子性:事务是最小单元,不可再分隔的一个整体。
C 一致性:事务中的方法要么同时成功,要么都不成功,要不都失败。
I 隔离性:多个事务操作数据库中同一个记录或多个记录时,对事务进行隔离开来有序执行。
D 持久性:事务成功时,操作的结果永久的写入到数据库磁盘中。

2、五种数据库BUG读

1.脏读:(完全不加锁,且直接改主数据数据)
   A线程写时不加锁,B线程读A线程未提交的数据。A回滚,B线程之前读到的数据为无效数据。
2.不可重复读:(读不加共享锁)
   A事务第一次读数据,B线程改操作。A第二次读取数据,同一事物内两次读取数据不一致。
3.第一类事务丢失:(回滚丢失)
   A事务撤销时,在A事务开始和结束的B事务也抹杀了,无视B的存在。
4.第二类事务丢失:(提交覆盖丢失)
   A事务覆盖B事务已提交的数据,造成B事务操作丢失。
5.幻读:(不锁表)
   主要指两次读取表的总数不一致。

3、四种隔离级别(就是共享锁、独占锁、表锁)

1.读未提交数据(read uncommitted)(完全不加锁,且直接改主数据数据)
    允许事务读取未被其他事务提交的变更。
2.读已提交数据(read committed)(写时加独占锁,读时不加锁)
    只允许事务读取已经被其他事务提交的变更。
3.可重复读(repeatable read)(共享锁、与独占锁,默认)
    确保事务可以多次从一个字段中读取相同的值,在这个事务持续期间,禁止其他事务对这个字段进行更新。
4.串行化(serializable)(对表级加锁)
    读操作加表级读锁至事务结束。可以禁止幻读。会导致大量的操作超时和锁竞争,大大降低数据库的性。

4、Spring事务的7种传播行为

当一个事务方法被另一个事务方法调用时,这个事务方法应该如何运行。

(required / supports / mandatory / requires_new / not supported / never / nested)
required(加入):Spring默认的,加入当前事务,没有事务就新建。
supports(加入):有则加入,没有就不管了,非事务运行
mandatory(强制事务执行):有则加入,没有就抛异常。
requires_new(新建):不管有没有,直接创建新事务。
not supported(不支持):以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
never(不支持):以非事务方式执行,如果当前存在事务,则抛出异常。
nested(存在就嵌套的执行):当前存在事务,则嵌套在当前事务中执行。当前没事务,则新建,类似 REQUIRE_NEW。
对事务的要求程度可以从大到小排序:mandatory / supports / required / requires_new / nested / not supported / never;

二、编程式事务管理

用 TransactionTemplate 或 PlatformTransactionManager,Spring 推荐 TransactionTemplate。

1、引入依赖

<dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.2.9.RELEASE</version>
</dependency>

2、代码

@Autowired
private PlatformTransactionManager transactionManager;@Autowired
private TransactionTemplate transactionTemplate;public void testTransactionManager() {TransactionStatus status = transactionManager.getTransaction(new DefaultTransactionDefinition());try {// ....  业务代码transactionManager.commit(status);} catch (Exception e) {transactionManager.rollback(status);}
}public void testTransactionTemplate() {transactionTemplate.execute(new TransactionCallbackWithoutResult() {@Overrideprotected void doInTransactionWithoutResult(TransactionStatus transactionStatus) {try {// ....  业务代码} catch (Exception e) {//回滚transactionStatus.setRollbackOnly();}}});
}

三、声明式事务(@Transactional)

Spring 用 ThreadLocal 为线程做副本,存放维护事务配置的属性、运行状态等信息,
通过 AOP 机制在方法前后分别织入开启事务、提交、回滚的逻辑,
@Transactional 注解修饰的方法前后分别织入开启事务的逻辑,以及提交或回滚的逻辑。
@Transactional 可以修饰在方法或者类上,区别就在于修饰于类上的,会对该类下符合条件的方法(例如private修饰的方法就不符合条件)前后都织入事务的逻辑。

失 效 场 景:
1.protected、private 修饰的方法上使用 @Transactional 注解,虽然事务无效,但不会有任何报错。
2.类内方法调用会失效。
3.和线程池使用。

1、引入依赖

<dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.2.9.RELEASE</version>
</dependency>

2、代码

@Transactional(propagation= Propagation.REQUIRED,isolation =Isolation.READ_UNCOMMITTED,timeout=30,readOnly=true,rollbackFor=RuntimeException.class)
public void testTransaction(){// ....  业务代码
}
http://www.khdw.cn/news/36857.html

相关文章:

  • 云南公司网站制作百度入口
  • 后台java语言做网站郑州网站开发公司
  • 免费网站空间哪个好seo 什么意思
  • html5高端网站建设织梦模板国内新闻摘抄
  • 广西网站推广seo交流
  • 怎么做自己网站南昌seo排名优化
  • 东莞建站模板公司市场调研表模板
  • 黑龙江企业网站建设公司怎么做电商生意
  • 沈阳建网站关键词难易度分析
  • 做房产推广那个网站好广告推广有哪些平台
  • 程序员为什么不敢创业做网站seo综合查询站长工具怎么用
  • 有效作业设计方案杭州网站优化多少钱
  • 国家对网站建设的要求百度蜘蛛池自动收录seo
  • 济南集团网站建设费用seo怎么优化方法
  • 做培训的网站建设免费广告网
  • 双鱼儿 网站建设软文例文 经典软文范例
  • 未备案网站 赚钱seo网络推广教程
  • 网站制作上哪学校sem是什么意思
  • 网站建设潍坊阿里云搜索引擎网址
  • 福州网站建设案例seo页面优化公司
  • 做网站咋不用买虚拟机关键词优化排名网站
  • 广州知名网站推广网络安全
  • 中国营销传播网手机版南宁seo平台标准
  • 科目一速成网站建设百度广告投放平台官网
  • 用discuz做的网站看啥网一个没有人工干预的网
  • 影视网站模板网络优化工程师是做什么的
  • 织梦房产网站模板他达拉非片的作用及功效副作用
  • 做一网站APP多少钱全球网站排名查询网
  • 做网站宝鸡百度账号客服人工电话
  • 专业制作假行驶证东莞seo外包平台