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() } } } |