SSMjava三大框架要学多久不能实现事务

  上一篇博文详细说了如何整合Spring、SpringMVC和MyBatis这三大框架。但是没有说到如何配置mybatis的事务管理,实现开发中,事务是必不可少的。本篇作为对上一篇的补充,说明在SSM框架中如何使用注解的形式进行事务管理

          在编写业务的过程中,会需要进行事务处理,当需要执行多条插入语句时,如果前几条成功,而最后一条失败,那么我们需要回滚数据库操作,保持数据的一致性和完整性,此时,就需要利用DB的事务处理。事务是恢复和并发控制的基本单位。


        简单来说,所谓的事务,是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。


事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。


       ?原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。


       ?一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。


       ?隔离性(isolation)。一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。


       ?持久性(durability)。持续性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。

 在SSM框架中,使用的是Spring的事务管理机制。Spring可以使用编程式实现事务声明式实现事务以及注解式实现事务。本文主要说一下如何使用注解式@Transanctional实现实现事务管理。

本文代码例子基于上一篇博文,具体代码中已经给出。简单看下目录结构以及实体类:


在此用一个小例子来测试事务管理是否成功配置。代码基础是SSM框架搭建里面的测试代码。我们现在测试的方法是:我要插入一个User对象的集合,如果此对象数量小于2,那么可以成功插入,但是如果大于2,那么就抛出异常(事务处理必须抛出异常,只有这样Spring才帮助事务回滚),这样数据库就会回滚,不插入任何数据。测试结果如果数据库没插入任何数据,那么表示事务处理配置成功,反正,失败。

        实体类、DAO接口,业务接口,以及业务实现都有,这个测试仅需要在业务层中添加一个方法,然后使用JUnit测试即可,业务实现类中添加如下方法,注意注解@Transactional

* 事务处理必须抛出异常,Spring才会帮助事务回滚 }
接下来在测试类中添加如下方法进行测试:

         注意:此时进行JUnit测试会发现出现错误,这是因为方法中抛出了这个异常。实质上确实进行了事务管理,数据没有插入,此时表示配置成功了;反之,如果去掉注解,那么前两条数据会插入成功,然后后面会抛出异常。

}

为鼓励上传资源,我们采用积分下载方式,希望您能发布更多更好的资源互相分享

上传软件或电子书,源码,资料等

,审核后即获2积分;如发布时设了下载需积分,其他用户下载后你将获得相应积分

首次注册时,可以获送10个下载积分

,供您下载资源和熟悉网站下载的使用

3.发现资源有误或其他问题,通过举报按钮反馈后我们将奖励积分

4.您可以在论坛通过发帖等方式获取

可以在有效期内不限次数下载

7.我们会不定期举办各种活动,参加活动可以获取积分,请关注下载频道首页公告。

Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。

Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。

}

ssm三大框架完美整合的maven项目

这里整合了一个基于ssm三大主流框架的maven项目,采用的是oracle11g数据库,测试过可以正常运行,ssm的配置基本都有,适合刚入门的新手学习

}

我要回帖

更多关于 java三大框架要学多久 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信