package cn.com.leadfar.jpa;
import java.util.Random;
import javax.naming.InitialContext;
import javax.transaction.UserTransaction;
import cn.com.leadfar.jpa.StudentManager;
import junit.framework.TestCase;
public class StudentManagerClient extends TestCase{
public void testAddStudent01() throws Exception{
InitialContext context = new InitialContext();
StudentManager sm = (StudentManager)context.lookup("StudentManager/remote");
for(int i=0; i<10; i++){
sm.addStudent("学生"+new Random().nextInt(99999));
if(i > 5){
throw new RuntimeException("异常!");
//数据库依然会插进去数据.
}
}
}
public void testAddStudent02() throws Exception{
InitialContext context = new InitialContext();
StudentManager sm = (StudentManager)context.lookup("StudentManager/remote");
//JTA的事务管理由UserTransaction管理.
UserTransaction utx = (UserTransaction)context.lookup("UserTransaction");
try{
utx.begin();
//没有数据会插入数据库.整个事务都回滚.
for(int i=0; i<10; i++){
sm.addStudent("学生"+new Random().nextInt(99999));
if(i > 5){
throw new RuntimeException("异常!");
}
}
utx.commit();
}catch(Exception e){
utx.rollback();
e.printStackTrace();
}
}
}
分享到:
相关推荐
`ejb_jpa01client`可能包含了调用EJB服务并参与分布式事务的代码,而`ejb_jpa01`可能包含了EJB组件和相关的持久化配置。通过分析这些文件,我们可以深入了解ejb3.0如何在实际应用中处理分布式事务。 在实际开发中,...
7. **容器管理的事务(CMT)**:EJB 3.0中的事务管理由容器自动处理,开发者只需专注于业务逻辑,无需关心事务的开始、提交和回滚。 除了EJB 3.0的核心规范文档,如`ejb-3_0-fr-spec-ejbcore.pdf`,还有专门针对...
容器会根据方法的标注(如@Transactional)自动开始、提交或回滚事务。 6. **安全性**:EJB3.0提供了基于角色的访问控制(Role-Based Access Control, RBAC),允许开发者通过@RolesAllowed注解限制访问权限。 7. ...
6. **容器管理的事务(Container-managed Transactions, CMT)**:EJB容器负责事务的开始、提交、回滚,开发者只需关注业务逻辑。EJB3.0中,事务可以通过方法级别的注解如`@TransactionAttribute`来控制。 7. **...
- 容器管理的事务(CMT):容器负责开始、提交或回滚事务。 - bean管理的事务(BMT):由Bean自己控制事务边界。 5. **EJB安全性**: - 角色和权限:定义不同用户群体(角色)以及他们对Bean操作的权限。 - ...
EJB支持声明式事务管理,即开发者只需在接口或方法级别声明事务属性,容器将自动处理事务的开始、提交、回滚等操作。 ### 7. EJB的并发控制 容器提供了对多线程访问EJB实例的支持,包括基于锁的同步机制,确保并发...
7. **容器管理的事务(Container-Managed Transactions,CMT)**:EJB容器自动管理事务的开始、提交、回滚,开发者只需关注业务逻辑。 8. **安全性**:EJB提供了一套完整的安全模型,包括角色、权限和认证机制,...
7. 异常处理:EJB 3.0允许在bean方法中抛出`ApplicationException`的子类,这些异常不会导致事务回滚,而未声明的异常则会触发事务回滚。 8. 客户端编程模型:EJB 3.0提供了更简单的客户端编程模型,可以通过JNDI...
- **事务管理**:EJB支持事务处理,可以自动管理事务的开始、提交、回滚等操作,确保数据一致性。 - **并发控制**:EJB提供了线程管理和锁控制,有效处理多用户同时访问的问题。 **3. EJB的部署与生命周期** EJB...
- **控制事务回滚**:在声明式事务管理中,可以通过配置事务属性来控制何时触发事务回滚,例如设置`rollbackFor`属性来指定触发回滚的异常类型。 - **定义事务传播特性**:事务传播特性定义了当方法调用时如何参与...
EJB3中的容器管理的事务(CMT)允许开发者无需关心事务的开始、提交或回滚,这些都由EJB容器自动处理。开发者只需在方法上添加`@TransactionAttribute`注解来指定事务的属性。 ### 6. 容器服务 EJB3提供了一系列的...
5. **Transaction Management**:EJB提供强大的事务管理功能,可以根据业务需求选择不同的事务隔离级别和回滚策略。容器自动管理事务,确保数据的一致性和完整性。 6. **DAO(Data Access Object)模式**:虽然不是...
5. **容器管理的事务**:EJB容器自动处理事务管理,开发者只需专注于业务逻辑,无需关心事务的开启、提交或回滚。 6. **依赖注入**:通过`@EJB`、`@Inject`、`@Resource`等注解实现组件之间的依赖注入,提高了代码...
控制事务回滚 在声明式事务管理中,可以使用`@Transactional`注解的`rollbackOn`属性指定异常类型,当抛出这些异常时,事务会自动回滚。 ### 12. 事务的传播特性 `@Transactional`注解的`propagation`属性定义了...
EJB 3.0提供了自动的事务管理机制,根据Bean的方法类型和标注,系统会自动进行事务的开始、提交或回滚,开发者无需手动管理事务。 5. **安全控制** EJB 3.0的安全模型允许开发者通过角色和权限来控制访问,提供了...
Enterprise JavaBeans(EJB)是Java平台上用于构建可部署在企业级服务器上的分布式应用程序的一种技术。...2. 事务管理:EJB容器自动处理事务的开始、提交、回滚,确保数据的一致性。 3. 安全性:EJB提供了角色基
EJB容器自动管理事务的开始、提交、回滚,开发者只需专注于业务逻辑,无需关心事务管理。 7. **安全性** EJB3提供了角色为基础的安全性,允许开发者通过`@RolesAllowed`注解限制对bean方法的访问权限。 8. **EJB...
5. **事务管理**:EJB 3.0支持自动事务边界,使得开发者可以专注于业务逻辑,而无需关心事务的开始、提交或回滚。 **EJB 3.0持久化规范(ejb-3_0-fr-spec-persistence.pdf)** 持久化规范是EJB 3.0的一个重要组成...
7. **事务管理**:EJB支持声明式事务管理,只需在方法上添加@Transactional注解,容器就会自动处理事务的开始、提交或回滚。 8. **安全性**:EJB可以通过角色和权限进行安全控制,确保只有授权的用户才能访问特定的...
- **JTA事务**: 在Java EE环境中,JPA通常与EJB或Servlet容器配合,由容器管理事务。 - **编程式事务**: 开发者在代码中手动开始、提交、回滚事务。 **5. JPA的性能优化** - **缓存(Cache)**: JPA支持一级缓存...