リファクタリング第1章のビデオレンタルシステムを
"そのまま" EJB2.0 & CMP で実装するとどうなるか

[ 戻る ]
データソースおよびテーブル定義
VIDEOデータソースのプロパティ
CUSTOMERテーブル
CUSTNAME 主キー、VARCHAR型、java.lang.Stringにマッピング
RENTALテーブル
TITLE 複合キー、VARCHAR型、java.lang.Stringにマッピング
CUSTNAME 複合キー、VARCHAR型、java.lang.Stringにマッピング
DAYSRENTED INTEGER型、intにマッピング
MOVIEテーブル
TITLE 主キー、VARCHAR型、java.lang.Stringにマッピング
PRICECODE INTEGER型、intにマッピング
PRICEテーブル
PRICECODE 主キー、INTEGER型、intにマッピング
 
JBuilder7 Enterprise版 EJBデザイナ
配布ディスクリプタ
ejb-jar.xml
ejb-borland.xml
 
Price ローカルエンティティビーン
LocalHomeインターフェース
Localインターフェース
Beanクラス
プライマリキークラス
Movie ローカルエンティティビーン
LocalHomeインターフェース
Localインターフェース
Beanクラス
Rental ローカルエンティティビーン
LocalHomeインターフェース
Localインターフェース
Beanクラス
プライマリキークラス
Customer ローカルエンティティビーン
LocalHomeインターフェース
Localインターフェース
Beanクラス
 
検証用 SystemClient ステートレスセッションビーン
EJB環境変数
 
Homeインターフェース
    package refactor;

    import java.rmi.*;
    import javax.ejb.*;

    public interface SystemClientHome extends javax.ejb.EJBHome {
      public SystemClient create() throws CreateException, RemoteException;
    }
 
Remoteインターフェース
    package refactor;

    import java.rmi.*;

    public interface SystemClient extends javax.ejb.EJBObject {
      public String test(String custname) throws RemoteException;
    }
 
Beanクラス
    package refactor;

    import javax.ejb.*;
    import javax.naming.*;

    public class SystemClientBean implements SessionBean {
      SessionContext sessionContext;
      public void ejbCreate() throws CreateException {
      }
      public void ejbRemove() {
      }
      public void ejbActivate() {
      }
      public void ejbPassivate() {
      }
      public void setSessionContext(SessionContext sessionContext) {
        this.sessionContext = sessionContext;
      }

      /**
        * 検証用リモートメソッド
        */
      public java.lang.String test(java.lang.String custname) {
        try {
          Context ctx = new InitialContext();
          CustomerHome custhome = (CustomerHome)ctx.lookup("java:comp/env/ejb/Customer");
          return custhome.findByPrimaryKey(custname).htmlStatement();
        }
        catch(Exception ex) {
          throw new EJBException(ex);
        }

      }
    }

[ 戻る ]