我可以: 邀请好友来看>>
ZOL星空(中国) > 技术星空(中国) > Java技术星空(中国) > Spring事务处理探究(1)
帖子很冷清,卤煮很失落!求安慰
返回列表
签到
手机签到经验翻倍!
快来扫一扫!

Spring事务处理探究(1)

57浏览 / 2回复

sariny

sariny

3
精华
32
帖子

等  级:Lv.7
经  验:14615
  • Z金豆: 无权限

    千万礼品等你来兑哦~快点击这里兑换吧~

  • 城  市:北京
  • 注  册:2005-08-25
  • 登  录:2025-06-20
  • 身份验证
发表于 2010-07-31 19:46:49
电梯直达 确定
楼主
  
  •             
  •   
  •             
  •   
  •         
  • 本文主要是在看了 关于spring声明式事务管理异常处理的测试和小结http://www.javaeye.com/topic/34867一文以后想写的,而且前段时间与jbpm整合的时候才发现自己的事务设置一直有问题,根本无法回滚(汗,都是网络上照抄的,没测试),再加上它的使用的spring版本1.2,所以觉得有必要自己再测试,加深影像。

          对事务有任何不清楚的,可以参考一下这个 http://bhsc-happy.javaeye.com/blog/288983

          开发环境:

          OS:windows XP
          Web Server: jakarta-tomcat-5.0.28
          Databbse Server: MS SQL Server 2000 (打了SP3补丁)
          IDE: MyEclipse 6.0.1

          测试案例系统结构:

          web层<---->Service层<---->DAO层

          web层就是Struts2,DAO使用hibernate -3.3.1.GA-dist.zip,spring是spring-framework-2.5.5

          数据库表和它一样吧:

          student1和Student2,表结构相同:id,name,address.其中id为主键且为自增长型.
    student1表中有一条记录:


          测试情形一:

          web层捕获异常并处理,DAO层不捕获异常,Service也不捕获异常.


          Service层接口:

    Java代码 复制代码
    1. public interface Student1Service {   
    2.        
    3.     void addStudent1(Student1 stu);   
    4.        
    5. }   
    6.   
    7. public interface StudentSService {   
    8.        
    9.     void addStudent2(Student2 stu) throws SaveException;   
    10.        
    11. }  




          Service实现

    Java代码 复制代码
    1. public void addStudent1(Student1 stu) {   
    2.          stufDAO.insertStuF(stu);   
    3. }   
    4.   
    5. public void addStudent2(Student2 stu) throws SaveException {   
    6.        String[] aa={"ww","ww","ww"};   
    7.         for(int i=0;i<5;i++){        //出错   
    8.          System.out.println(aa);   
    9.        }   
    10.             stusDAO.insertStuS(stu);   
    11.      }  


          DAO层接口

    Java代码 复制代码
    1. public interface StudentFDAO {   
    2.     void insertStuF(Student1 stu);   
    3. }   
    4.        
    5. public interface StudentSDAO {   
    6.     void insertStuS(Student2 stu);   
    7. }  


          DAO实现

    Java代码 复制代码
    1. public void insertStuF(Student1 stu) {   
    2.          getHibernateTemplate().save (stu);   
    3.      }   
    4.     public void insertStuS(Student2 stu) {   
    5.          getHibernateTemplate().save (stu);   
    6.      }  


          Action

    Java代码 复制代码
    1. public String execute() throws Exception{   
    2.          Student1 sti=new Student1(stu1Name,stu1Address);   
    3.          Student2 stu=new Student2(stu1Name,stu1Address);   
    4.         try{   
    5.              studentfService.addStudent1(sti);   
    6.              studentsService.addStudent2(stu);   
    7.          }catch(DataAccessException   e){   
    8.              System.out.println(“error”);   
    9.             return “failer”:   
    10.          }   
    11.            
    12.         return SUCCESS;   
    13.      }  


          JSP

    Java代码 复制代码
    1. "testaction.action" method="POST">   
    2.            
    3.             
    名:"text"   value="stu1Name" name="stu1Name">
    地址:"text"   value="stu1Address" name="stu1Address">
    "submit"   value="提交"   style="width:80px">
      
  •        
  • 下载ZOL客户端,随时随地与大家交流 发表回复
    评分 收藏
    个性签名:

    zhaoxianghua

    zhaoxianghua


    精华

    帖子

    等  级:Lv.3
    经  验:698
    发表于 2010-08-30 21:31:18 1楼
    学习

    tianyizhangp...

    tianyizhangpan


    精华

    帖子

    等  级:Lv.4
    经  验:2050
    发表于 2010-10-31 17:24:08 2楼
    高级模式
    星空(中国)精选大家都在看24小时热帖7天热帖大家都在问最新回答

    针对ZOL星空(中国)您有任何使用问题和建议 您可以 联系星空(中国)管理员查看帮助  或  给我提意见

    快捷回复 APP下载 返回列表