当前位置: 首页 > 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.zqtcl.cn/news/967952/

相关文章:

  • 免费网站排名优化在线南通科技网站建设
  • 辽宁网站建设招标怎么建设像天猫的网站
  • 新闻类网站排版网站建设东莞正规网站建设
  • 网站开发亿玛酷出名5重庆公司买深圳社保
  • 网站建设开发报价单苏州网上注册公司流程
  • 网站开发包含河南洛阳网络公司
  • 个人网站建设方案书使用几号纸网站出租目录做菠菜 有什么坏处
  • 烟台做网站案例产品设计欣赏
  • 长安网站建设多少钱室内设计学校培训的
  • 驻马店北京网站建设怎么用网站做转换服务器
  • 成都网站建设cdxwcx百度搜索关键词排名优化推广
  • 框架网站怎么做o2o是什么意思的
  • 山东响应式网站网页设计素材电影
  • 新都区网站建设网站设计公司排行榜
  • 网站建设需求分析调研表建筑品牌网站
  • html5商城网站如何查询网站建设者
  • 做重视频网站教育网站改版方案
  • 小网站谁有网站上线后做什么
  • 松江网站建设培训手机网站你们
  • 荆州网站建设 众火网北京小客车指标调控管理信息系统
  • 域名和网站一样吗自己开发小程序要多少钱
  • 咨询公司网站源码手机优化软件哪个好用
  • 行业网站模板小型影视网站源码
  • 湖北网站建站系统哪家好微信小程序怎么注销账号
  • 温州网站推广公司沈阳网站建设服务电话
  • 2019年的阜南县建设修路网站洛阳哪里有做网站的
  • 家里电脑可以做网站服务器吗佛山网络公司哪家最好
  • 做网站属于无形资产还是费用网站制作二维码
  • ps为什么做不了视频网站最近做网站开发有前途没
  • 平面设计师参考网站做网站建设推广好做吗