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

建设一个网站需要多久多少钱此网站三天换一次域名

建设一个网站需要多久多少钱,此网站三天换一次域名,网站开发怎么自学,互联网广告行业目录 Spring中事务的实现 1、通过代码的方式手动实现事务 2、通过注解的方式实现声明式事务 2.1、Transactional作用范围 2.2、Transactional参数说明 2.3、注意事项 2.4、Transactional工作原理 事务隔离级别 1、事务特性 2、Spring中设置事务隔离级别 2.1、MySQL事…

目录

Spring中事务的实现

1、通过代码的方式手动实现事务

2、通过注解的方式实现声明式事务

2.1、@Transactional作用范围

2.2、@Transactional参数说明

2.3、注意事项

2.4、@Transactional工作原理

事务隔离级别

1、事务特性

2、Spring中设置事务隔离级别

2.1、MySQL事务隔离级别 

2.2、Spring事务隔离级别

Spring事务传播机制

spring事务传播机制分类

1、Propagation.REQUIRED

2、Propagation.SUPPORTS

3、Propagation.MANDATORY

4、Propagation.REQUIRES_NEW

5、Propagation.NOT_SUPPORTED

6、Propagation.NEVER

7、Propagation.NESTED


Spring中事务的实现

1、通过代码的方式手动实现事务

    @Autowiredprivate DataSourceTransactionManager transactionManager;@Autowiredprivate TransactionDefinition transactionDefinition;//1、开启事务TransactionStatus transactionStatus=transactionManager.getTransaction(transactionDefinition);//手动设置创建时间和修改时间的默认值userinfo.setCreatetime(LocalDateTime.now().toString());userinfo.setUpdatetime(LocalDateTime.now().toString());//2、回滚事务//transactionManager.rollback(transactionStatus);//3、提交事务transactionManager.commit(transactionStatus);

2、通过注解的方式实现声明式事务

@Transactional

1、可以添加在类上或方法上

2、在方法执行前自动开启事务,在方法执行完(没有任何异常)自动提交事务,但是如果在方法执行期间出现异常,那么将自动回滚事务

    @Transactional  //声明式事务(自动提交)@RequestMapping("insert")public Integer insert(Userinfo userinfo){//非空效验if (userinfo==null || !StringUtils.hasLength(userinfo.getUsername())|| !StringUtils.hasLength(userinfo.getPassword())){return 0;}int result= userService.add(userinfo);System.out.println("添加:"+result);return result;}

2.1、@Transactional作用范围

修饰方法时:只能用到public方法上,否则不生效

修饰类时:表明该注解对该类中所有的public方法都生效

2.2、@Transactional参数说明

参数

说明

value当配置了多个事务管理器时,可以使用该属性指定选择哪个事务管理器。
transactionManager当配置了多个事务管理器时,可以使用该属性指定选择哪个事务管理器.
propagation事务的传播行为默认值为Propagation.REQUIRED
isolation事务的隔离级别,默认值为Isolation. DEFAULT
timeout事务的超时时间,默认值为-1如果超过该时间限制但事务还没有完成则自动回滚事务.
readOnly指定事务是否为只读事务默认值为false;为了忽略那些不需要事务的方法比如读取数据,可以设置read-only为true.
rollbackFor用于指定能够触发事务回滚的异常类型,可以指定多个异常类型。
rollbackForClassName用于指定能够触发事务回滚的异常类型,可以指定多个异常类型.
noRollbackFor抛出指定的异常类型不回滚事务,也可以指定多个异常类型
noRollbackForClassName抛出指定的异常类型.不回滚事务,,也可以指定多个异常类型

2.3、注意事项

当程序中有try-catch。及时程序发生异常,事务也不会回滚

    @Transactional  //声明式事务(自动提交)@RequestMapping("insert")public Integer insert(Userinfo userinfo){//非空效验if (userinfo==null || !StringUtils.hasLength(userinfo.getUsername())|| !StringUtils.hasLength(userinfo.getPassword())){return 0;}int result= userService.add(userinfo);System.out.println("添加:"+result);try {int num=10/0;} catch (Exception e) {System.out.println(e.getMessage());}return result;}

解决方法:

1、将异常抛出去

    @Transactional  //声明式事务(自动提交)@RequestMapping("insert")public Integer insert(Userinfo userinfo){//非空效验if (userinfo==null || !StringUtils.hasLength(userinfo.getUsername())|| !StringUtils.hasLength(userinfo.getPassword())){return 0;}int result= userService.add(userinfo);System.out.println("添加:"+result);try {int num=10/0;} catch (Exception e) {//将异常继续抛出throw e;}return result;}

2、使用代码手动回滚事务

TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

2.4、@Transactional工作原理

事务隔离级别

1、事务特性

原子性

一致性

持久性

隔离性

2、Spring中设置事务隔离级别

2.1、MySQL事务隔离级别 

事务隔离级别脏读不可重复读幻读
读未提交(READ UNCOMMITTED)
读已提交(READ COMMITTED)×
可重复读(REPEATABLE READ)××
串行化(SERIALIZABLE)×××

2.2、Spring事务隔离级别

1. Isolation.DEFAULT: 以连接的数据库的事务隔离级别为主。

2. Isolation.READ. _UNCOMMITTED:读未提交,可以读取到未提交的事务,存在脏读。

3. Isolation.READ. COMMITTED:读已提交,只能读取到已经提交的事务,解决了脏读,存在不可重复读。

4. Isolation.REPEATABLE READ:可重复读,解决了不可重复读,但存在幻读(MySQL默认级别)。

5. Isolation.SERIALIZABLE: 串行化,可以解决所有并发问题,但性能太低。

通过设置@Transactional里的isolation属性即可 

Spring事务传播机制

spring事务传播机制分类

1、Propagation.REQUIRED

默认传播机制,如果调用链存在事务,则加入事务,如果不存在则创建事务

2、Propagation.SUPPORTS

如果调用链存在事务,则加入事务;如果不存在则非事务方式运行

3、Propagation.MANDATORY

强调必须有事务

4、Propagation.REQUIRES_NEW

5、Propagation.NOT_SUPPORTED

6、Propagation.NEVER

7、Propagation.NESTED

嵌套事务和加入事务的区别:

1、整个事务如果全部执行成功,二者的结果是一样的;

2、如果事务执行到一半失败了,那么加入事务整个事务会全部回滚;而嵌套事务会局部会滚,不会影响上一个方法中执行的结果

http://www.tj-hxxt.cn/news/72148.html

相关文章:

  • 资源下载网站wordpress服务营销案例100例
  • 插入视频网站seo代码优化包括哪些
  • 在线教育网站策划方案石家庄新闻网
  • skype在网站上怎么做链接优化网站首页
  • 广州西樵网站制作微信软文推广怎么做
  • 企业网站建设 优化推广优化工具
  • 最专业微网站多少钱四川旅游seo整站优化站优化
  • 毕业设计网站建设软件项目百度一下百度下载
  • 现在去石家庄会被隔离吗防城港网站seo
  • 网站站群东莞seo公司
  • 破仑网络营销公司池州网站seo
  • 中学生做的网站有哪些方面世界网站排名查询
  • 没有网站域名备案信息西安百度关键词推广
  • 网站关键词词库seo顾问张智伟
  • 越秀定制型网站建设南通网站快速收录
  • 企业做企业网站的好处seo外包公司兴田德润官方地址
  • 网站建设费用北京百度一下你就知道下载安装
  • 软装设计师常用网站西安seo网站推广优化
  • xampp安装网站模板最近三天的新闻大事摘抄
  • 网站特效模板中国四大软件外包公司
  • 更换dns能上国外网站吗如何做网站营销
  • 做网站的版式会侵权吗西安网约车平台
  • wordpress 投票网站seo综合查询怎么用的
  • 网站统一建设统一管理做直销去哪里找客户
  • dreamweaver cs4网页设计与网站建设标准教程交友网站有哪些
  • 久久时间计算网福州百度首页优化
  • 动态网站开发网络课程设计竞价推广外包托管
  • ui设计做兼职的网站搜索推广出价多少合适
  • 七牛wordpress后台无法登录seo在线优化技术
  • 苏州企业网站建设网络服务上海关键词优化排名哪家好