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

电商网站开发需要掌握哪些知识技能可做百度百科参考资料的网站

电商网站开发需要掌握哪些知识技能,可做百度百科参考资料的网站,广州住房和城乡建设部网站首页,江苏广宇建设集团有限公司 网站目录 Spring事务简介 Spring支持事务管理的两种方式 编程式事务控制 声明式事务管理 Spring事务角色 未开启事务之前 开启Spring的事务管理后 事务配置 事务传播行为 事务传播行为的可选值 Spring事务简介 事务作用#xff1a;在数据层保障一系列的数据库操作同成功…目录 Spring事务简介 Spring支持事务管理的两种方式 编程式事务控制 声明式事务管理 Spring事务角色  未开启事务之前 开启Spring的事务管理后 事务配置 事务传播行为 事务传播行为的可选值 Spring事务简介 事务作用在数据层保障一系列的数据库操作同成功同失败 Spring事务作用在数据层或业务层保障一系列的数据库操作同成功同失败 需要注意的是 程序是否支持事务首先取决与数据库比如使用MySQL的且选择的是innodb引擎那么是可以支持事务的。但是如果选择的是myisam引擎的话那么从根本上就是不支持事务的即使Spring中设置了事务也不会生效。 Spring支持事务管理的两种方式 编程式事务控制 在源代码中编辑事务的逻辑流程也就是在代码中设置动态信息开启事务提交事务回滚事务 编程式事务控制通过TransationTemplate或者TransactionManager手动管理事务 声明式事务管理 实际是通过AOP实现且基于Transactional的全注解的方式也是使用最多的 使用声明式事务官的实现步骤 步骤一在需要被事务管理的方法上添加注解 Transactional可以写在接口类上、接口方法上、实现类上和实现类方法上 写在接口类上该接口的所有实现类的所有方法都会有事务 写在接口方法上该接口的所有实现类的该方法都会有事务 写在实现类上该类中的所有方法都会有事务 写在实现类方法上该方法上有事务 建议写在实现类或实现类的方法上 步骤二在jdbcConfig类中配置事务管理器 //配置事务管理器mybatis使用的是jdbc事务 Bean public PlatformTransactionManager transactionManager(DataSource dataSource){DataSourceTransactionManager transactionManager new DataSourceTransactionManager();transactionManager.setDataSource(dataSource);return transactionManager; } 注意事务管理器要根据使用技术进行选择Mybatis框架使用的是JDBC事务可以直接使用DataSourceTransactionManager   步骤三开启事务注解 在SpringConfig的配置类中开启 Configuration ComponentScan(com.itheima) PropertySource(classpath:jdbc.properties) Import({JdbcConfig.class,MybatisConfig.class //开启注解式事务驱动 EnableTransactionManagement public class SpringConfig { } 设置好后运行测试类就可以发现当业务出现错误后事务就可以控制回滚保证数据的正确性 Spring事务角色  未开启事务之前 AccountDao 的outMoney因为是修改操作会开启一个事务T1AccountDao 的inMoney因为是修改操作会开启一个事务T2AccountService的transfer没有事务 执行后如果运行过程中没有抛异常则T1heT2都正常提交数据正确 如果两个方法中出现异常T1执行成功提交事务但T2因为抛异常不会执行则就导致数据出现错误 开启Spring的事务管理后 transfer上添加了Transactional注解在该方法上就会有一个事务T AccountDao的outMoney方法的事务T1加入到transfer的事务T中 AccountDao的inMoney方法的事务T2加入到transfer的事务T中 这样就保证他们在同一个事务中当业务层中出现异常整个事务就会回滚保证数据的准确性。 由上述可知 事务管理员发起事务方在Spring中通常指代业务层开启事务方法事务协调员加入事务方在Spring中通常指代数据层方法也可以是业务层方法 注意目前的事务管理是基于DataSourceTransactionManager和SqlSessionFactoryBean使用的是同一个数据源。 事务配置 以上这些属性都可以在Transactional注解的参数上进行设置 readOnlytrue只读事务false读写事务增删改要设为false,查询设为true。 timeout:设置超时时间单位秒在多长时间之内事务没有提交成功就自动回滚-1表示不设置超时时间。 rollbackFor:当出现指定异常进行事务回滚 noRollbackFor:当出现指定异常不进行事务回滚 并不是所有的异常都会回滚事务所以需要rolbackFor的存在比如下列代码 Service public class AccountServiceImpl implements AccountService {Autowiredprivate AccountDao accountDao;Transactionalpublic void transfer(String out,String in ,Double money) throws IOException{accountDao.outMoney(out,money);//int i 1/0; //这个异常事务会回滚if(true){throw new IOException(); //这个异常事务就不会回滚}accountDao.inMoney(in,money);} 上述代码中不会出现回滚的的原因是 Spring的事务只会对Error异常和RuntimeException异常及其子类进行事务回滚其他的异常类型是不会回滚的对应IOException不符合以上的条件所以不回滚 此时就可以使用rollabckFor属性来设置出现IOException异常不回滚 Transactional(rollbackFor {IOException.class}) 此时 throw new IOException(); 这个异常事务就不会回滚 Transactional的常用配置参数 属性名说明propagation事务的传播行为默认值为 REQUIREDisolation事务的隔离级别默认值采用 DEFAULT可选的值 DEFAULT :默认隔离级别, 会采用数据库的隔离级别 READ_UNCOMMITTED : 读未提交 READ_COMMITTED : 读已提交 REPEATABLE_READ : 重复读取 SERIALIZABLE: 串行化 timeout事务的超时时间默认值为-1不会超时。如果超过该时间限制但事务还没有完成则自动回滚事务。readOnly指定事务是否为只读事务默认值为 false。true只读事务false读写事务增删改要设为false,查询设为true。rollbackFor用于指定能够触发事务回滚的异常类型并且可以指定多个异常类型。noRollbackFor事务的传播行为默认值为 REQUIRED可选的值在上面介绍过 事务传播行为 加入一个记录日志的功能事务T2也会加入到事务T中因为事务传播行为的默认值为REQUIRED所以此时虽然有Transaction开启了事务T2还是会加入到事务T中 若此时转账失败所有事务回滚导致日志中没有任何关于此次转账的信息这显然是不行的 此时需修改logService改变事务的传播行为通过Transaction中的可选属性进行配置 Autowired private LogDao logDao; //propagation设置事务属性传播行为设置为当前操作需要新事务 Transactional(propagation Propagation.REQUIRES_NEW) public void log(String out,String in,Double money ) {logDao.log(转账操作由out到in,金额money); } 事务传播行为的可选值
http://www.hkea.cn/news/14263020/

相关文章:

  • 什么是网站交互性网络营销相关理论
  • 兰西网站建设html静态页面兼职
  • 微网站背景图片大连网站制作选择ls15227
  • 阿里云除了做网站还能用来干什么河源市建设网站
  • 本地南昌网站建设电商
  • 网站建设网络推广公司有哪些百度四川建设厅网站
  • 企业网站选择第三方还是自己做做网站的主机配置
  • 河南网站建设找哪家微信代运营费用
  • 有了域名空间怎么做网站成都软件培训机构排名榜
  • 网站建设+廊坊学历提升机构哪家好
  • 海东企业网站建设企业网站托管服务常用指南
  • 珠海左右创意园网站开发中信建设有限责任公司海外地位
  • 网站域名注册证书查询徐州领航装饰工程有限公司
  • 简述建设一个网站的基本步骤郑州网站建设公司哪家专业
  • 做网站会犯法吗艺阳科技网站建设
  • 那个网站有兼职做室内设计做电力 公司网站
  • 成都网站建设零一海阳做网站
  • 河东天津网站建设闵行做网站
  • 介绍类网站建设策划书范文有诗意的设计公司名字
  • 中国建设银行信用卡旅游卡服务网站哈尔滨市哪里做淘宝网站
  • 南京百度网站排名建站工作室
  • 企业做定制网站的好处网站建设和管理专业
  • 做网站的注意点wordpress 群站
  • 网站建设技术合伙人的技术股份企业的网站建设公司
  • 中恒诚信建设有限公司网站wordpress简单网址导航模板
  • 淄博网站设计公司学校网站建设的不足
  • 做网站用什么语言制作最安全做网站属于印花税哪个范畴
  • 做网站时间网站推广的具体方法
  • 静态企业网站下载服务哪家好网站制作
  • 网站模板源码下载网页设计作业总结