高级Meb技术 Java 2 Enterprise Edition
高级Web技术 Java 2 Enterprise Edition
本次课程内容 EJB事务处理 Container Managed transaction Bean Managed transaction
本次课程内容 ◼ EJB事务处理 ◼ Container Managed Transaction ◼ Bean Managed Transaction
CMT
CMT
CMT Container Managed transaction 程序员在Bean的源程序中没有事务边界控制的代码(如 事务开始、回滚、提交等) ■在部署描述符中指定事务属性,由容器控制事务的边界。 容器维护的事务是方法级的 即默认将一个方法当作一个事务执行 当方法执行的过程中,发生系统级异常,容器会自动将事 务回滚,即将方法前面执行的结果恢复。 适用于所有类型的EJB 例子背景 银行账户例子 EJB提供存款、取款、获取余额的操作
CMT ◼ Container Managed Transaction ◼ 程序员在Bean的源程序中没有事务边界控制的代码(如 事务开始、回滚、提交等) ◼ 在部署描述符中指定事务属性,由容器控制事务的边界。 ◼ 容器维护的事务是方法级的 ◼ 即默认将一个方法当作一个事务执行 ◼ 当方法执行的过程中,发生系统级异常,容器会自动将事 务回滚,即将方法前面执行的结果恢复。 ◼ 适用于所有类型的EJB ◼ 例子背景 ◼ 银行账户例子 ◼ EJB提供存款、取款、获取余额的操作
Remote接口 package bank; import javax ejb. *k import java rmi. x publicinterface Banker extends EJBobject { public void deposit(string accountName, int amount) throws Remote Exception, BankerFailure Exception; public void withdraw( String accountName, int amount) throws RemoteException BankerFailure Exception; public int getBalance( String accountName) throws RemoteException, BankerFailure Exception 定义商业方法
Remote接口 package bank; import javax.ejb.*; import java.rmi.*; public interface Banker extends EJBObject { public void deposit(String accountName, int amount) throws RemoteException, BankerFailureException; public void withdraw(String accountName, int amount) throws RemoteException, BankerFailureException; public int getBalance(String accountName) throws RemoteException, BankerFailureException; } 定义商业方法