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

网站根目录 本地共享正规网站制作公司哪家好

网站根目录 本地共享,正规网站制作公司哪家好,深圳网站建设平台,卖手表的网站事务首先#xff0c;我们要知道事务是什么构成单一逻辑工作单元的操作集合称为事务事务的ACID特性原子性#xff1a;不可分割的最小操作单位#xff0c;要么同时成功#xff0c;要么同时失败一致性#xff1a;事务操作前后#xff0c;数据总量不变隔离性#xff1a;多个…事务首先我们要知道事务是什么构成单一逻辑工作单元的操作集合称为事务事务的ACID特性原子性不可分割的最小操作单位要么同时成功要么同时失败一致性事务操作前后数据总量不变隔离性多个事务之间相互独立持久性当事务提交或回滚后数据会持久化的保存数据传统编程的事务管理在传统的JAVA数据库编程中我们遵循的是打开连接-执行操作-提交事务-关闭连接如下面的代码Connection con getCon();con.setAutoCommit(false);con.prepareStatement(UPDATE...).execute();con.prepareStatement(UPDATE...).execute();con.commit();//conn.rollback();con.close();这样就产生了很多模板代码而且依靠程序员手动提交事务也十分不可靠Spring对事务的管理Spring的事务管理分为两类声明式事务编程式事务Spring定义了一个接口PlatformTransactionManager 我们只需要使用其实现类将数据源交其管理即可实现Spring事务管理ConfigurationEnableTransactionManagement // 开启事务管理ComponentScan(wang.ismy.spring)public class Config { Bean public DataSource dataSource(){ DruidDataSource druidDataSource new DruidDataSource(); druidDataSource.setUrl(jdbc:mysql:///test); druidDataSource.setUsername(root); druidDataSource.setPassword(123); return druidDataSource; } Bean public JdbcTemplate jdbcTemplate(DataSource dataSource){ return new JdbcTemplate(dataSource); } Bean public PlatformTransactionManager transactionManager(DataSource dataSource){ return new DataSourceTransactionManager(dataSource); }}这样当你在你的service中抛出异常的时候Spring就会自动帮你进行事务回滚 Transactional(rollbackFor Exception.class) // Spring默认只对运行期异常回滚加上该属性则设置回滚的异常类型为Exception public void transfer() { jdbcTemplate.execute(UPDATE account SET amount 90 WHERE name alice); int a1/0; jdbcTemplate.execute(UPDATE account SET amount 110 WHERE name bob); }属性Transactional注解的一些属性说明如下read-only是否是只读事务。默认false不只读。isolation指定事务的隔离级别。默认值是使用数据库的默认隔离级别。propagation指定事务的传播行为。timeout指定超时时间。默认值为-1。永不超时。rollback-for用于指定一个异常当执行产生该异常时事务回滚。产生其他异常事务不回滚。没有默认值任何异常都回滚。no-rollback-for用于指定一个异常当产生该异常时事务不回滚产生其他异常时事务回滚。没有默认值任何异常都回滚。理解事务的传播行为PROPAGATION_REQUIRED简单来说就是两个被事务管理的方法都将在同一个事务内执行PROPAGATION_REQUIRES_NEW而这个传播行为则是开启一个新事务PROPAGATION_NESTED该传播行为则是与JDBC的保存点一样它使用了物理事务的保存点的概念编程式事务一般来说编程式事务很少用它就是把一些对数据库的更新操作放在一起来达到事务管理的目的首先我们需要一个 Bean public TransactionTemplate transactionTemplate(PlatformTransactionManager manager){ return new TransactionTemplate(manager); }在使用的时候注入这个Template进行操作 public void transfer(){ transactionTemplate.execute((TransactionCallback) status - { String sql UPDATE account SET money money -200 WHERE uid 41; String sql1 UPDATE account SET money money 200 WHERE uid 45; jdbcTemplate.update(sql); jdbcTemplate.update(sql1); return null; }); }这样也能进行事务管理原理最后来探讨一下Spring事务管理的原理一句话事务管理是通过AOP实现的这个我们通过获取Bean的实际类型就知道System.out.println(context.getBean(AccountService.class).getClass());// 结果class wang.ismy.spring.AccountService$$EnhancerBySpringCGLIB$$f8bd6705这是Spring官网给出的一个受事务管理的概念视图AOP增强了我们的Service类当真实的方法被调用前与调用后Spring替我们完成commit/rollback等操作以实现事务管理
http://www.pierceye.com/news/967952/

相关文章:

  • 秦皇岛汽车网站制作广州网站建设 知名
  • 自己建网站数据怎么做惠州网站制作培训
  • 南山做网站的wordpress自助友链
  • php企业网站源码软件工程师发展前景
  • 如何从建设局网站上更换职称人员哪个网站可以免费做国外网站
  • 情侣博客网站模板下载学校网站建设调查报告
  • 平台网站开发是什么意思全屏的网站
  • 素材图库网站源码网站建设及推广培训班
  • 英国电商网站jsp旅游网站开发系统
  • 机关网站建设引导语开发一个企业网站需要多少钱
  • 徐汇网站推广挣钱最快的小游戏
  • 手机网站开发的目的在线免费看影视网站
  • 湖州网站设计wordpress自动删除p标签
  • 昆明几大网站学生网站建设实训总结
  • 丽江手机网站建设建设公司起名大全
  • seo网站分析工具wordpress的安装包
  • 北京网站建设报价表徐州专业做网站
  • 怎样做网站卖网站国内免费开源crm
  • wordpress多语言网站济宁住房和城乡建设厅网站
  • 免费crm网站下载网站建设 繁体
  • 东莞企业官方网站建设网站建设对产品推销作用大吗
  • php网站路径问题站长工具权重查询
  • 箱包官方网站模板摄影后期教程网站
  • iis 手机网站同域名网站改版需要把之前网站里的文章都拷贝过来吗?
  • 网站是专门对生活中的一些所谓常识做辟谣的商标设计网站排行
  • seo网站设计营销工具抽奖网站插件
  • 家装设计网站大全网站建设用哪个好
  • 青海企业网站建设企业建设网
  • 电子商务网站环境建设怎么劝客户做网站
  • 山西教育学会的网站建设网站投放广告教程