<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

         今天寫了個(gè)程序 Spring整合Hibernate 使用Spring中的HibernateTemplate 通過配置程序可以運(yùn)行起來 并可以操作數(shù)據(jù)庫 但程序執(zhí)行過程中會(huì)有異常 不知道是什么錯(cuò)誤 一下是程序執(zhí)行的異常
    Hibernate: insert into test.student (STUNAME, AGE, SEX, PHONE) values (????)
    java.lang.RuntimeException
        at com.stu.server.StudentServer.addStudentByCondition(StudentServer.java:
    30)
        at com.stu.server.StudentServer$$FastClassByCGLIB$$8fef4d1a.invoke(
    <generated>)
        at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:
    149)
        at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:
    696)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:
    149)
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:
    106)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:
    171)
        at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:
    631)
        at com.stu.server.StudentServer$$EnhancerByCGLIB$$f5f4d830.addStudentByCondition(
    <generated>)
        at com.stu.test.Test.main(Test.java:
    33)
    Hibernate: update test.student set STUNAME
    =?, AGE=?, SEX=?, PHONE=? where ID=?
    還麻煩各位幫忙指點(diǎn)一下 程序我上傳上來了,另外還請(qǐng)哪個(gè)大哥幫忙指出這程序的不足之處

    程序下載地址:http://www.tkk7.com/Files/lifenote/HibernateInSpring.rar
    posted on 2007-12-07 10:20 LifeNote 閱讀(1796) 評(píng)論(11)  編輯  收藏 所屬分類: JavaHibernateSpring
    Comments
    • # re: Spring整合Hibernate 莫名其妙的錯(cuò)誤
      LifeNote
      Posted @ 2007-12-07 11:12
      我知道異常了 我使用的是spring的聲明事務(wù) 當(dāng)年齡小于30的時(shí)候就拋異常并且回滾事務(wù) 可現(xiàn)在并沒有回滾 還麻煩個(gè)位看看 多謝
      getStudentDAO().save(stu);
      stu.setAge( stu.getAge()+10);
      if(stu.getAge()<30){ //這里拋個(gè)異常就回滾了 不用rollback了
      throw new RuntimeException();
      }  回復(fù)  更多評(píng)論   
    • # re: Spring整合Hibernate 莫名其妙的錯(cuò)誤 [未登錄]
      flustar
      Posted @ 2007-12-07 11:28
      建議你把hbm文件中的 catalog="test" 去掉 另外你的hibernate.cfg.xml是多余的  回復(fù)  更多評(píng)論   
    • # re: Spring整合Hibernate 莫名其妙的錯(cuò)誤
      Tiger F
      Posted @ 2007-12-07 11:32
      兩個(gè)問題:
      既然使用了spring的聲明事物,就不應(yīng)該再自己聲明事物了。spring的聲明事物就是檢查是否有異常出現(xiàn)來決定最后是提交還是回滾的,所以必須使用異常。
      所以你的server程序應(yīng)該寫為:(似乎根本不需要回滾)
      public void addStudentByCondition(Student stu){
      if(stu.getAge()>=30)
      getStudentDAO().save(stu);
      }
      如果因?yàn)橛衅渌壿嬓枰貪L的話,應(yīng)該這樣:
      public void addStudentByCondition(Student stu){
      if(stu.getAge()<30)
      throw new MyBizException(); // 建議自定義一個(gè)有業(yè)務(wù)意義的異常
      getStudentDAO().save(stu);
      }

      另一個(gè)問題,你的Dao類在使用templage方法是都自己做了異常處理,但是你的異常處理無實(shí)質(zhì)內(nèi)容,這個(gè)做法會(huì)影響到事物的。如果你不知道應(yīng)該如何處理這些異常,最好就是不要管他。
        回復(fù)  更多評(píng)論   
    • # re: Spring整合Hibernate 莫名其妙的錯(cuò)誤
      LifeNote
      Posted @ 2007-12-07 11:34
      catalog="test" 這個(gè)只是數(shù)據(jù)庫的名字啊  回復(fù)  更多評(píng)論   
    • # re: Spring整合Hibernate 莫名其妙的錯(cuò)誤
      LifeNote
      Posted @ 2007-12-07 11:38
      既然我在
      if(stu.getAge()<30){ //這里拋個(gè)異常就回滾了 不用rollback了
      throw new RuntimeException();
      }這里拋了異常為什么程序還是沒有回滾呢  回復(fù)  更多評(píng)論   
    • # re: Spring整合Hibernate 莫名其妙的錯(cuò)誤
      Tiger F
      Posted @ 2007-12-07 14:41
      如果你的程序還是原來那個(gè)樣子,雖然拋出了異常也是被你自己捕獲了,并沒有被spring捕獲到。
      spring既然不知道發(fā)生了異常,當(dāng)然不會(huì)回滾事物了。
        回復(fù)  更多評(píng)論   
    • # re: Spring整合Hibernate 莫名其妙的錯(cuò)誤
      LifeNote
      Posted @ 2007-12-07 16:28
      請(qǐng)問那要如何處理事務(wù)呢 我有些糊涂了 麻煩 把那程序修改后把代碼貼上來 好么 十分感謝 學(xué)習(xí)中  回復(fù)  更多評(píng)論   
    • # re: Spring整合Hibernate 莫名其妙的錯(cuò)誤
      Tiger F
      Posted @ 2007-12-07 16:30
      我貼了呀,上面。只要把a(bǔ)ddStudentByCondition函數(shù)的實(shí)現(xiàn)完整替換一下,至少是能回滾了。  回復(fù)  更多評(píng)論   
    • # re: Spring整合Hibernate 莫名其妙的錯(cuò)誤
      LifeNote
      Posted @ 2007-12-07 16:35
      您是說
      if(stu.getAge()<30)
      throw new MyBizException(); // 建議自定義一個(gè)有業(yè)務(wù)意義的異常
      getStudentDAO().save(stu);
      }

      這里new MyBizException(); 是自己捕獲了么 ?
      那這樣和你說的 這個(gè):

      雖然拋出了異常也是被你自己捕獲了,并沒有被spring捕獲到。
      spring既然不知道發(fā)生了異常,當(dāng)然不會(huì)回滾事物了。
      也沒有被spring知道啊 如何回滾呢
        回復(fù)  更多評(píng)論   
    • # re: Spring整合Hibernate 莫名其妙的錯(cuò)誤
      Tiger F
      Posted @ 2007-12-07 16:59
      public void addStudentByCondition(Student stu){
      if(stu.getAge()<30)
      throw new MyBizException(); // 可以用RuntimeException替換
      getStudentDAO().save(stu);
      }

      注意,整個(gè)addStudentByCondition函數(shù)應(yīng)該就這幾行,而不是修改這三行。
      把你的try/catch之類的統(tǒng)統(tǒng)刪除。  回復(fù)  更多評(píng)論   
    • # re: Spring整合Hibernate 莫名其妙的錯(cuò)誤
      LifeNote
      Posted @ 2007-12-07 17:02
      哦 明白你的意思了 十分感謝!!!  回復(fù)  更多評(píng)論   
     
    主站蜘蛛池模板: 免费久久人人爽人人爽av| 亚洲AV无码专区亚洲AV伊甸园| 99在线观看视频免费| 丰满妇女做a级毛片免费观看| 亚洲乱码卡一卡二卡三| 久久综合图区亚洲综合图区| 午夜亚洲国产成人不卡在线| 亚洲香蕉网久久综合影视| 处破痛哭A√18成年片免费| 99视频有精品视频免费观看| 国内精品99亚洲免费高清| 国产亚洲漂亮白嫩美女在线| 亚洲中文字幕精品久久| 亚洲无人区视频大全| 农村寡妇一级毛片免费看视频| 99re免费视频| 国产片AV片永久免费观看| 国产在线精品一区免费香蕉| 免费一级特黄特色大片| 亚洲a∨无码精品色午夜| 国产.亚洲.欧洲在线| va天堂va亚洲va影视中文字幕| 亚洲视频在线免费看| 亚洲精品成人av在线| 亚洲AV成人无码久久精品老人| 久久久久久久亚洲精品| 亚洲中文无韩国r级电影| 亚洲精品麻豆av| 中文字幕亚洲电影| 久久久久亚洲?V成人无码| 国产成人毛片亚洲精品| 国产日韩成人亚洲丁香婷婷| 久久影视综合亚洲| 亚洲精品一品区二品区三品区| 国产av无码专区亚洲av果冻传媒| 在线观看亚洲成人| 国产精品亚洲一区二区三区在线 | 亚洲熟妇中文字幕五十中出| 亚洲精品成人片在线观看| 亚洲人成色7777在线观看不卡 | 亚洲av无码一区二区三区天堂|