后端技术笔记

持续热爱!

 

CAP定理

Partition tolerance 分区容错性

Consistency 一致性

Avaliability 可用性

为什么说CAP三者不能兼得?

 

数据库三范式

1NF

2NF

函数依赖

平凡函数依赖于非平凡函数依赖

完全函数依赖与部分函数依赖

完全函数依赖
部分函数依赖

传递函数依赖与直接依赖

传递函数依赖
直接依赖

码

idsnosname
   

主属性与非主属性

cno(课程号)sno(学号)grade(学生课程成绩)
   

全码

外码

2NF

例子

cno(课程号)sno(学号)grade(学生课程成绩)sdept(学生系名)
    

符合2NF的设计

cno(课程号)sno(学号)grade(学生课程成绩)
   

 

sno(学号)sdept(学生系名)
  

3NF

例子

sno(学号)sdept(学生系名)sloc(学生宿舍地址,同一个系的学生一个地址)
   

 

35734-3uvwrtuwnjp.png

 

符合3NF的设计

sno(学号)sdept(学生系名)
  

 

sdept(学生系名)sloc(学生宿舍地址,同一个系的学生一个地址)
  

 

 

Spring 事务传播行为

简介

事务传播行为类型说明
REQUIRED如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。
SUPPORTS支持当前事务,如果当前没有事务,就以非事务方式执行。
MANDATORY使用当前的事务,如果当前没有事务,就抛出异常。
REQUIRES_NEW新建事务,如果当前存在事务,把当前事务挂起。
NOT_SUPPORTED以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
NEVER以非事务方式执行,如果当前存在事务,则抛出异常。
NESTED如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则创建一个事务。

准备

POM

application.yml

sql

DAO

TxDAO

TxDAOImpl

Service

TxServiceA

TxServiceAImpl

TxServiceB

TxServiceBImpl

REQUIRED

情况1:a()开启事务

 

img

 

情况2:a()不开启事务

 

img

 

SUPPORTS

情况1:a()开启事务

 

img

 

情况2:a()不开启事务

 

img

 

MANDATORY

情况1:a()开启事务

 

img

 

情况2:a()不开启事务

异常

REQUIRES_NEW

情况1:a()开启事务

 

img

 

情况2:a()不开启事务

 

img

 

NOT_SUPPORTED

情况1:a()开启事务

 

img

 

情况2:a()不开启事务

NEVER

情况1:a()开启事务

异常

情况2:a()不开启事务

NESTED

情况1:a()开启事务

情况2:a()不开启事务

总结

 

img

 

事务传播失效

同一个类中事务传播失效

代码示例

解决方法

代码示例

非public方法

 

备案号:粤ICP备19041348号-10