熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

EJB之JPA(事務回滾)

2022-06-13   來源: Java核心技術 
    package leadfarjpa;import javautilRandom;import javaxnamingInitialContext;import javaxtransactionUserTransaction;import leadfarjpaStudentManager;import junitframeworkTestCase;public class StudentManagerClient extends TestCase{
   
    public void testAddStudent() throws Exception{
   
    InitialContext context = new InitialContext()
   
    StudentManager sm = (StudentManager)contextlookup(StudentManager/remote
   
    for(int i=; i<; i++){
   
    smaddStudent(學生+new Random()nextInt())
   
    if(i > ){
   
    throw new RuntimeException(異常!
   
    //數據庫依然會插進去數據
   
    }
   
    }
   
    }
   
    public void testAddStudent() throws Exception{
   
    InitialContext context = new InitialContext()
   
    StudentManager sm = (StudentManager)contextlookup(StudentManager/remote
   
    //JTA的事務管理由UserTransaction管理
   
    UserTransaction utx = (UserTransaction)contextlookup(UserTransaction
   
    try{
   
    utxbegin()
   
    //沒有數據會插入數據庫整個事務都回滾
   
    for(int i=; i<; i++){
   
    smaddStudent(學生+new Random()nextInt())
   
    if(i > ){
   
    throw new RuntimeException(異常!
   
    }
   
    }
   
    mit()
   
    }catch(Exception e){
   
    utxrollback()
   
    eprintStackTrace()
   
    }
   
    }
   
    }


From:http://tw.wingwit.com/Article/program/Java/hx/201311/27051.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.