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

做网站小程序企业网站建设视频教程

做网站小程序,企业网站建设视频教程,汉中住房和城乡建设部网站,网站seo公司一、背景 Mysql在修改完数据后,默认会自动触发事务Commit提交。 而在我们服务的一个方法里,需要多次修改Mysql记录。 为了保证原子性,我们需要将Mysql设为手动提交,多次修改后再commit提交。 二、Spring事务 1、编程式事务管理…

一、背景

Mysql在修改完数据后,默认会自动触发事务Commit提交。
而在我们服务的一个方法里,需要多次修改Mysql记录。
为了保证原子性,我们需要将Mysql设为手动提交,多次修改后再commit提交。

二、Spring事务

1、编程式事务管理

TransactionTemplate三组件
PlatformTransactionManager事务管理器,用于管理事务的开始、提交和回滚。
TransactionDefinition事务定义,用于定义事务的隔离级别、超时时间、只读等。
TransactionCallback事务回调,用于执行具体的业务逻辑。

使用1

 private TransactionTemplate transactionTemplate;public void MyTransaction() {transactionTemplate.execute((status -> {try {//todoreturn null;} catch (Exception e){status.setRollbackOnly();}return null;}));}

使用2

 @Autowired
private PlatformTransactionManager transactionManager;public void testTransaction() {TransactionStatus transactionStatus = transactionManager.getTransaction(new DefaultTransactionDefinition());try {//代码实现transactionManager.commit(transactionStatus);} catch (Exception e) {transactionManager.rollback(transactionStatus);}
}

2、声明式事务管理

@Transactional

标注位置

  • 标注在方法上,它会在方法执行期间开启一个新的事务。如果方法成功完成,则提交事务。如果方法抛出异常,则回滚事务。
  • 标注在类上时,它会应用于类中的所有公共方法,并且可以通过在方法上指定propagation属性来覆盖类级别的行为。

属性

  • propagation : 事务传播行为
  • isolation :事务隔离级别
  • timeout :定义事务的超时时间(单位为秒)。默认值为-1,表示使用数据库的默认超时时间。
  • readOnly:是否只读。默认值为false,表示允许读写操作。如果设置为true,则只允许读操作。
  • rollbackFor:指定哪些异常需要回滚事务。默认值为RuntimeException和Error。可以指定其他异常,并且可以指定多种异常,例如rollbackFor={SQLException.class,MyException.class}。
@Transactional(propagation = Propagation.REQUIRED)
public void MyMethod {//你的业务代码
}

三、Spring事务传播机制

假如我们的事务方法,修改了某些数据。
但是!!!里面还调用了另一个事务方法,那该怎么处理???
我们是要将当它们当成一个事务?还是两个事务??
Spring提供了七种策略,可以让我们去选择。

Spring提供了七种策略(事务传播机制

事务的传播机制
PROPAGATION_REQUIRED支持当前事务,如果当前没有事务,就新建一个事务。(默认)。
PROPAGATION_SUPPORTS支持当前事务,如果当前没有事务,就以非事务方式执行。
PROPAGATION_MANDATORY支持当前事务,如果当前没有事务,就抛出异常。
PROPAGATION_REQUIRES_NEW新建事务,如果当前存在事务,把当前事务挂起。
PROPAGATION_NOT_SUPPORTED以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
PROPAGATION_NEVER以非事务方式执行,如果当前存在事务,则抛出异常。
PROPAGATION_NESTED如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则进行与PROPAGATION_REQUIRED类似的操作。
http://www.yayakq.cn/news/956855/

相关文章:

  • 建设银行辽宁分行招聘网站招工信息发布平台
  • 网站安全狗 拦截301wordpress文章加背景
  • 百度站长工具app免费建立个人网站的哪些平台好
  • 北京建站推广wordpress 悬浮 插件
  • 青岛网站设计微动力万网域名中文网站查询
  • 城市网站改版建设大丰专业做网站的公司
  • 网站建设的关键技术网站建设网络推广柯
  • 做网站和做小程序哪个好企业做网站都需要准备哪些材料
  • 网上写作最好的网站滕州做网站的多少
  • 找做网站公司需要注意什么条件网页设计课程的总结
  • 网站建设的解决办法网站建设制作好评语
  • 手机英文网站大全济南哪有做网站的
  • asp简单网站开发北京集团 网站建设
  • 辽宁网站建设价位更改wordpress默认登录后台
  • 养生网站模板下载seo搜索排名优化
  • 太仓网站设计店铺门头图片
  • 外贸网站建设网络公司百度快照提交
  • 深圳低价做网站广州建网站新科网站建设
  • 中国反钓鱼网站联盟网络 网站
  • 静态网站怎么制作手机商城网站案例
  • 一个服务器可以建多少个网站网站备案他可以经营吗
  • 好的企业型网站模板下载wordpress变装小说
  • 如何将自己做的网站变成中文wordpress大前端5.2
  • 网站首页设计定位湖南昌正建设有限公司网站
  • 邢台网站建设58自媒体平台注册账号教程
  • 有专门做ppt的网站吗中国乐清网app
  • 适合推广的网站有哪些如何更改网站内链
  • 网站建设实施流程图网页界面设计方案
  • allintitle:湛江网站建设 seoseo的基本步骤包括哪些
  • 企业网站建设费用属于什么科目wordpress内页打不开