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

商城型网站建设房信网

商城型网站建设,房信网,江西省建设工程协会网站查询,湖北田源建设工程有限公司网站事务是具有ACID #xff08;原子的#xff0c;一致的#xff0c;隔离的和持久的#xff09;属性的工作单元。 原子意味着所有更改都发生或什么都没有发生。 如果从一个帐户借钱并贷记到另一个帐户#xff0c;则交易将确保借记和贷项均已完成或均未完成。 一致表示更改使数… 事务是具有ACID 原子的一致的隔离的和持久的属性的工作单元。 原子意味着所有更改都发生或什么都没有发生。 如果从一个帐户借钱并贷记到另一个帐户则交易将确保借记和贷项均已完成或均未完成。 一致表示更改使数据保持一致状态。 孤立表示更改不会干扰其他更改。 持久意味着更改一旦提交就保持提交。 关系数据库等资源管理器提供了一个事务管理器和一个用于控制事务的API。 熟悉JDBC的人会知道由于设置autocommit true默认情况下将启动事务。 每个更改数据库的语句都会自动提交。 可以通过将autocommit设置为false来更改此行为。 现在程序员必须显式开始事务然后提交或回滚该事务。 仅处理一种资源例如一个数据库的事务称为本地事务。 跨多个资源例如多个数据库或一个数据库和一个消息传递引擎的事务称为全局事务。 全局事务是使用XA协议实现的该协议涉及两阶段提交。 JTA规范描述了Java API供程序员使用全局事务。 JDBC中的事务方法例如begincommitrollback仅适用于JDBC和关系数据库而JTA可以与任何事务资源一起使用。 但是涉及事务处理的代码是可以由框架处理的样板代码。 在方法开始时您需要开始一个事务并且在方法完成时您需要提交或回滚该事务。 如果您使用过EJB可能会很熟悉您可以在部署描述符中指定方法应在其中执行的事务环境。 例如您可能会说RequiresNew这意味着在调用该方法之前启动一个新事务。 容器在调用方法之前启动新事务并在方法返回时提交新事务。 程序员不需要编写任何Java代码来处理事务。 在本文的其余部分我们将通过一个示例讨论使用Spring进行声明式事务管理。 对于本教程您将需要 1 Spring3.0 2 Eclipse是可选的。 我使用eclipse作为我的IDE。 Eclipse使您可以导出可以部署到Tomcat的战争。 但是您也可以使用其他IDE或命令行工具。 3您可以从springjdbcwithTransaction.zip下载此示例的源代码。 我们重新使用了JDBC和Spring博客中的示例该博客是我们之前写的。 让我们为MemberSpringJDBCDAO添加事务支持。 此类具有insertMember方法该方法将成员插入数据库。 让我们稍微修改一下方法以在插入数据库后抛出RuntimeException。 添加了运行时异常以假装在更新数据库时业务逻辑中发生了错误。 public int insertMember(Member member) {JdbcTemplate jt getJdbcTemplate() ;Object[] params new Object[{member.getFirstname(),member.getLastname(),member.getStreet(),member.getCity(),member.getZip(),member.getEmail(),member.getPassword()} ;int ret jt.update(insert_sql, params) ;throw new RuntimeException(simulate Error condition) ;return ret ; } 在这种方法中您是否希望将插入内容提交给数据库 答案是肯定的尽管这不是理想的行为。 JDBC的默认行为是autocommit true这意味着每个插入或更新都将立即提交。 您可以设置autocommit false并在方法末尾显式提交或回滚。 但是让您的容器处理此问题要容易得多。 要将声明式事务管理添加到上述方法中请使用以下步骤 步骤1在springjdbcdao.xml中定义一个事务管理器 bean idtxManagerclassorg.springframework.jdbc.datasource.DataSourceTransactionManager/ Spring与事务管理器一起开始和完成事务。 步骤2启用对交易注释的支持 添加到springjdbcdao.xml tx:annotation-driven transaction-managertxManager/ 步骤3将Transactional批注添加到insertMember方法 Transactional public int insertMember(Member member) { ... Transactional可以接受属性但我们将使用以下默认值 传播方式必填 必需表示需要进行交易。 如果没有事务Spring将请求事务管理器启动一个事务。 其他可能的值是Requires_New它告诉事务管理器始终挂起现有事务并开始一个新事务。 隔离级别默认 使用基础资源管理器的默认隔离级别。 回滚任何运行时异常都会触发回滚 步骤4使用Junit测试MemberSpringJDBCDAOTest运行更新的insertMember方法。 您将从事务管理器中看到以下日志指示该事务已回滚。 org.springframework.jdbc.datasource.DataSourceTransactionManager –启动事务回滚 2501 [main] DEBUG org.springframework.jdbc.datasource.DataSourceTransactionManager –启动事务回滚 2501 [main] DEBUG org.springframework.jdbc.datasource.DataSourceTransactionManager –在Connection [org.apache.derby.impl.jdbc.EmbedConnection4013320911XID 2827SESSIONID 1DATABASE c\ manoj \ mjprojects \ database \ pumausersDRDAID null2501 [main]调试org.springframework.jdbc.datasource.DataSourceTransactionManager –在Connection [org.apache.derby.impl.jdbc]上回滚JDBC事务。 EmbedConnection40 13320911XID 2827SESSIONID 1数据库 c\ manoj \ mjprojects \ database \ pumausersDRDAID null] 2511 使用SQL检查数据库表。 确认未添加任何记录。 步骤5从insertMember方法中删除runtimeexception然后再次运行测试。 Spring调试日志显示了事务已提交。 使用SQL检查数据库表。 确认记录已添加到表中。 总之事务对于维护数据源的ACID属性是必需的。 使用Spring的声明式事务使该任务更加容易。 参考 The Khangaonkar报告中来自我们的JCG合作伙伴 Manoj的Spring和声明性交易 。 相关文章 YouTube Java API入门 Google Guava库必需品 Java Code Geeks Andygene Web原型 使用Spring Security保护GWT应用程序 翻译自: https://www.javacodegeeks.com/2011/09/spring-declarative-transactions-example.html
http://www.pierceye.com/news/381416/

相关文章:

  • 文化传媒公司网站建设西渡网站建设
  • 购物网站为什么做移动端seo优化快速排名
  • iis服务器网站301重定向怎么做国家企业信息公开网查询系统
  • 免费家具网站模板做网站去什么公司好
  • 五个网站南宁网页制作培训
  • 枣庄建设网站wordpress如何自己编辑
  • 河南省城乡住房建设厅网站首页哪个公司网站备案快
  • 湘潭做网站价格优选磐石网络微信里怎么进入自己的公众号
  • 孟州网站wordpress主题游戏cms
  • 用php做的网站怎么上传莱州教体局网站
  • 网站互动性无锡模板建站
  • 中铁十六局工资明细沧州网站seo公司
  • 北京网站建设软件网页制作自我介绍源代码
  • 怎么注册公司的网站免费可以做旅游海报 的网站
  • 贵阳网站建设包首页微商建立网站
  • ppt制作软件全模板免费大连seo网站管理
  • 网站门户设计设计师的网站有哪些
  • 旅游公司网站建设百度一下官方下载安装
  • 网站上传大马后怎么做宁波seo推广公司电话
  • 长沙建网站培训机构织梦网站采集侠怎么做
  • 行政事业单位网站建设动漫设计与制作大学
  • 网站链接推广工具建立网站平台
  • 做网站需要学什么软件做网站智能工具
  • 成品网站代理上海的建设项目招投标在哪个网站
  • 阿里云的网站建设花钱么广州市建设职业培训学校网站
  • 网站建设和前端开发的区别哈尔滨网站制作方案
  • 改进网站的建议网易邮箱网页版
  • 南宁市做网站的公司新浪云能用wordpress
  • 网站建设品牌有哪些重庆seo排名收费
  • 发优惠券网站怎么做大连开发区做网站