




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
全文都是以学生课程管理这个例子来进行说明,简单明了:里面有studentDao,studentDaoImpl,courseDao,courseDaoImpl编程式实现Spring事务思路:编程式的实现事务,主要用到(1).TransactionTemplateOrg.springframework.transaction.support类,要在你的StudentDaoImpl中声明这个类的对象transactionTemplate,进行DI;(2)transactionTemplate.execute()方法进行数据库的事务操作(增,删,改);(3)配置beans.xml。1.在StudentDaoImpl类声明TransactionTemplateprivate TransactionTemplate transactionTemplate;/ 进行DI注入public void setTransactionTemplate(TransactionTemplate transactionTemplate)this.transactionTemplate = transactionTemplate;2.在该类中定义一个方法transactionTest(),实现事务管理。public void transactionTest(Student student)/ Have to make a final, according to the implemented methodfinal String id = student.getId();final String name = student.getName();transactionTemplate.execute(new TransactionCallback()Overridepublic Object doInTransaction(TransactionStatus ts)tryString sql = insert into student (id,name) values(?,?);/ Wrong sql/String sql = insert into studentssss (id,name) values(?,?);Object params = new Object id, name;jdbcTemplate.update(sql, params);catch (Exception e)ts.setRollbackOnly();System.out.println(Roll back at transaction .);return null;);方法详解:主要就是执行transactionTemplate.execute()方法,方法中用事务处理了增,删,改方法。其中:execure()有一个TransactionCallback接口,用匿名内部类进行实现,要实现接口中的方法doInTransaction(TransactionStatus ts). 在try-catch语句块中写入要进行的DB操作, jdbcTemplate.update(),如果出现异常,那么会在catch块中进行rollback.注意点:局部变量id, name必须声明成final类型,即不允许改动,这样才能在doInTransaction中利用局部变量(如果说的不对请联系我)。3.Beans.xml文件配置1.配置JdbcTemplate2.配置TransactionManagerTransactionManager配置根据使用的持久化技术的不同而不同,这里使用的是JDBC,所以对应的是DataSourceTransactionManager.各种持久化技术对应的TransactionManager对应表3.配置TransactionTemplate需要引用 transactionManager4.配置StudentDaoImpl完成!在main方法中直接调用studentDao. transactionTest(student)就可以了。声明式实现Spring事务思路:不需要像编程式的那样在源码中进行rollback,而是利用Spring AOP来实现。利用TransactionProxyFactoryBean来进行指定方法的拦截,设置TransactionAttribute,从而实现事务处理。这些都是在beans.xml文件中进行配置的,所以对源码并没有什么改变。假定,在courseDaoImpl中有方法 testTransaction( ) ,用来进行增、删、改等操作。方法1:1.实现TransactionProxyFactoryBeanOerceptorcom.primeton.spl.dao.CourseDao解释:id设置成courseDao:因为在main中通过ApplicationContext获得bean是通过这个名字获得的,这样显得直观。而真正的courseDao的实现类一般推荐在id后面加上”Target”(见下文)。(1).proxyInterfaces, 这里是指需要代理的接口有哪些。也就是需要被事务处理的方法在哪个接口中定义的。(2).target,代理的目标,也就是需要被事务处理的方法的实现类(3).transactionManager. 同上(4).transactionAttributeSource这个是事务处理的一些属性设置(见附录)2.配置MatchAlwaysTransactionAttributeSource默认事务属性为:PROPAGATION_REQUIRED ,ISOLATION_DEFAULT这个用来拦截所有在上文配置的接口中的所有方法,所以叫MatchAlways完成!在main方法中直接调用courseDao.testTransaction( )方法即可。方法2:1.实现TransactionProxyFactoryBeancom.primeton.spl.dao.CourseDao2.配置transactionAttributeSource这里引用了自定义的transactionAttribute3.配置自定义myTransactionAttributePROPAGATION_REQUIRES_NEW ISOLATION_REPEATABLE_READ这样做是可以进行自己定义事务处理的属性完成!在main方法中直接调用courseDao.testTransaction( )方法即可。方法3:1实现TransactionProxyFactoryBeancom.primeton.spl.dao.CourseDao2.配置NameMatchTransactionAttributeSourcePROPAGATION_REQUIRES_NEW ,ISOLATION_REPEATABLE_READ ,readOnly, -SQLException, +ExceptionNameMatchTransactionAttributeSource 这样可以指定方法名字,自定义事务属性。* 是通配符,你也可以在这里直接写上”testTransaction”注意-SQLException, +Exception,如果某个异常前面有负号(-),那么当发生异常时进行rollback;如果某个异常前面有正号(+),抛出异常还是会commit完成!在main方法中直接调用courseDao.testTransaction( )方法即可。方法4:1实现TransactionProxyFactoryBeancom.primeton.spl.da
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025昆明市晋宁区妇幼健康服务中心招聘编外工作人员(6人)模拟试卷完整参考答案详解
- 2025第十三届贵州人才博览会省委金融办所属事业单位人才引进模拟试卷带答案详解
- 2025年西藏自治区烟草专卖局(公司)招聘(29人)模拟试卷附答案详解(考试直接用)
- 2025年泉州市考试录用公务员暨公开遴选公务员集中工作考前自测高频考点模拟试题及参考答案详解
- 2025广西北海市铁山港区市容市政管理中心招聘环卫工人5名(4月20日截止)考前自测高频考点模拟试题附答案详解(模拟题)
- 2025福建福州经济技术开发区市政工程中心第二季度招聘编外人员2人模拟试卷及答案详解(全优)
- 2025内蒙古赤峰市克旗银都矿业招聘4人模拟试卷附答案详解(模拟题)
- 2025年安庆岳西县事业单位引进急需紧缺专业人才10人考前自测高频考点模拟试题及答案详解(全优)
- 2025江苏中科能源动力研究中心招聘编制内高层次专业技术人才1人(连云港市)模拟试卷附答案详解(考试直接用)
- 2025年河北唐山市直属公立医院第一次公开选聘工作人员18名模拟试卷及完整答案详解
- 职业健康卫生培训课件
- 2025年广西专业技术人员继续教育公需科目(三)答案
- 麻醉科设备管理制度
- 辅助生殖妊娠营养干预
- 2024湘美版小学书法三年级上册教学设计(附目录)
- 搅拌站泵车管理制度
- 2025年PE板材项目市场调查研究报告
- 2025年国企人力资源管理岗招聘考试真题卷(含岗位说明书)
- 中国药典2025年版1~4部目录
- 公顷和平方千米导学案(教师用)
- 新闻写作基础知识课件
评论
0/150
提交评论