⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 day01.txt

📁 网络购物系统开发详细步骤
💻 TXT
📖 第 1 页 / 共 2 页
字号:
   bean name            : UserEJB 
   abstract schema name : user
   interface            : Local
   always wrap primary key : false
   sigle table mapping  : user

  --> class and package 
   修改
   package   : ejb
   bean name : UserEJB
   Bean class: ejb.UserBean
   Local Home: ejb.UserLocalHome
   Local     : ejb.UserLocal

c) 修改字段属性
   userid :
         field name   : userid
         is persisted : true
	 type         : java.lang.String
         isPrimaryKey : true
         in ejbcreate : true
         getter       : local
         setter       : none
         column name  : userid

  password :
         field name   : password
         is persisted : true
	 type         : java.lang.String
         isPrimaryKey : false
         in ejbcreate : true
         getter       : local
         setter       : local
         column name  : password

==========================================================

创建ContactInfoEJB

a) 右键点击数据源中的ContactInfo表 
   --> create cmp 2.0 Entity Bean

b) 修改bean properties
   bean name            : ContactInfoEJB 
   abstract schema name : ContactInfo
   interface            : Local
   always wrap primary key : false
   sigle table mapping  : ContactInfo

  --> class and package 
   修改
   package   : ejb
   bean name : ContactInfoEJB
   Bean class: ejb.ContactInfoBean
   Local Home: ejb.ContactInfoLocalHome
   Local     : ejb.ContactInfoLocal

c) 修改字段属性
   contactid :
         field name   : contactid
         is persisted : true
	 type         : java.lang.Integer
         isPrimaryKey : true
         in ejbcreate : true
         getter       : local
         setter       : none
         column name  : contactid

  userid :
         field name   : userid
	 is persisted : true
	 type         : java.lang.String
         isPrimaryKey : false
         in ejbcreate : true
         getter       : local
         setter       : local
         column name  : userid


  street1 :
         field name   : street1
	 is persisted : true
	 type         : java.lang.String
         isPrimaryKey : false
         in ejbcreate : true
         getter       : local
         setter       : local
         column name  : street1

  street2 :
         field name   : street2
	 is persisted : true
	 type         : java.lang.String
         isPrimaryKey : false
         in ejbcreate : true
         getter       : local
         setter       : local
         column name  : street2

  city :
         field name   : city
	 is persisted : true
	 type         : java.lang.String
         isPrimaryKey : false
         in ejbcreate : true
         getter       : local
         setter       : local
         column name  : city

  province :
         field name   : province
	 is persisted : true
	 type         : java.lang.String
         isPrimaryKey : false
         in ejbcreate : true
         getter       : local
         setter       : local
         column name  : province

  country :
         field name   : country
	 is persisted : true
	 type         : java.lang.String
         isPrimaryKey : false
         in ejbcreate : true
         getter       : local
         setter       : local
         column name  : country

  zip :
         field name   : zip
	 is persisted : true
	 type         : java.lang.String
         isPrimaryKey : false
         in ejbcreate : true
         getter       : local
         setter       : local
         column name  : zip

  email :
         field name   : email
	 is persisted : true
	 type         : java.lang.String
         isPrimaryKey : false
         in ejbcreate : true
         getter       : local
         setter       : local
         column name  : email

  homephone :
         field name   : homephone
	 is persisted : true
	 type         : java.lang.String
         isPrimaryKey : false
         in ejbcreate : true
         getter       : local
         setter       : local
         column name  : homephone

  
  cellphone :
         field name   : cellphone
	 is persisted : true
	 type         : java.lang.String
         isPrimaryKey : false
         in ejbcreate : true
         getter       : local
         setter       : local
         column name  : cellphone

  officephone :
         field name   : officephone
	 is persisted : true
	 type         : java.lang.String
         isPrimaryKey : false
         in ejbcreate : true
         getter       : local
         setter       : local
         column name  : officephone

==========================================================

创建AdimnEJB

a) 右键点击数据源中的User表 
   --> create cmp 2.0 Entity Bean

b) 修改bean properties
   bean name            : AdimnEJB 
   abstract schema name : Adimn
   interface            : Local
   always wrap primary key : false
   sigle table mapping  : Adimn

  --> class and package 
   修改
   package   : ejb
   bean name : AdimnEJB
   Bean class: ejb.AdimnBean
   Local Home: ejb.AdimnLocalHome
   Local     : ejb.AdimnLocal

c) 修改字段属性
   userid :
         field name   : userid
         is persisted : true
	 type         : java.lang.String
         isPrimaryKey : true
         in ejbcreate : true
         getter       : local
         setter       : none
         column name  : userid

  password :
         field name   : password
         is persisted : true
	 type         : java.lang.String
         isPrimaryKey : false
         in ejbcreate : true
         getter       : local
         setter       : local
         column name  : password

==========================================================
创建UserMgmSessionFacade 

a) 新建 ejb  : create ejb --> session bean 
b) 修改属性 
     bean name    : UserMgmSessionFacade
     interface    : local
     session type : statless
     Transaction  : Container

   --> class and package 
   修改
     package   : ejb
     bean name : UserMgmSessionFacade
     Bean class: ejb.UserMgmSessionFacadeBean
     Local Home: ejb.UserMgmSessionFacadeLocalHome
     Local     : ejb.UserMgmSessionFacadeLocal

c) 为UserMgmSessionFacade 添加成员变量

   右键点击UserMgmSessionFacade --> add --> field

   userLocalHome:
        name  : userLocalHome
        type  : UserLocalHome
        getter: none
        setter: none

   contactInfoHome:
        name  : contactInfoHome
        type  : ContactInfoLocalHome
        getter: none
        setter: none

   contactInfoSeqHome:
        name  : contactInfoSeqHome
        type  : ContactInfoSeqLocalHome
        getter: none
        setter: none

   adminHome:
        name  : adminHome
        type  : AdminLocalHome
        getter: none
        setter: none

==========================================================

为UserMgmSessionFacade添加商业方法

a) 右键点击UserMgmSessionFacade  --> add --> method
   修改:
       (* 用于用户注册 )
       name           : userRegister
       return type    :void
       input parameter: dto.UserDTO user,  
                        dto.ContactInfoDTO contactInfo
       interface      : local
       
==========================================================
为UserMgmSessionFacade添加 ejb local reference

a) 右键双击UserMgmSessionFacade的图标,出现图形界面
   --> ejb local reference --> add
   填写 name : ejb/userEJB
   --> ok
   
b) 选择 isLink 
c) 在link选项中选择 : UserEJB 
   在type选项中选择 : Entity
   

d) 依照以上方法,重复添加
	引用名称               EJB名称
   ejb/contactInfoEJB    : ContactInfoEJB
   ejb/contactInfoSeqEJB : ContactInfoSeqEJB
   ejb/adminEJB          : AdminEJB

==========================================================

右键点击UserMgmSessionFacade --> view bean source

a) 修改setSessionContext方法,用于初始化成员变量

   public void setSessionContext(
                      SessionContext sessionContext) {
    this.sessionContext = sessionContext;
 
    try{
      ServiceLocator locator =                                                 ServiceLocator.getInstance();
      userLocalHome =(UserLocalHome)
             locator.getEJBLocalHome(                                          "java:comp/env/ejb/userEJB" );
      contactInfoHome = ( ContactInfoLocalHome )
                       locator.getEJBLocalHome(                      "java:comp/env/ejb/contactInfoEJB" );
      contactInfoSeqHome =  ( ContactInfoSeqLocalHome)
                       locator.getEJBLocalHome(                   "java:comp/env/ejb/contactInfoSeqEJB" );
      adminHome = ( AdminLocalHome )
          locator.getEJBLocalHome(                                                    "java:comp/env/ejb/adminEJB" );

    }catch( ServiceLocatorException e ){
      e.printStackTrace();
      throw new EJBException( e.getMessage() );
    }
  }

b) 为userRegister函数添加函数体

 public void userRegister(dto.UserDTO user,                          dto.ContactInfoDTO contactInfo)
                   throws RegistryException {
    try{
      
      ContactInfoSeqLocal seqLocal =
          contactInfoSeqHome.findByPrimaryKey( 
                         new java.lang.Integer(1) );
      int seq = seqLocal.getSequence();

      userLocalHome.create(                                            user.getUserId(),user.getPassword());

      contactInfoHome.create(
              new Integer(seq),user.getUserId(),
              contactInfo.getStreet1(),
              contactInfo.getStreet2(),
              contactInfo.getCity(),
              contactInfo.getProvince(),
              contactInfo.getCountry(),
              contactInfo.getZip(),
              contactInfo.getEmail(),
              contactInfo.getHomephone(),
              contactInfo.getCellphone(),
              contactInfo.getOfficephone()
      );
    
    }catch( CreateException ce ){
      ce.printStackTrace();
        throw new RegistryException( ce.getMessage() );
    }
     catch( FinderException fe ){
        throw new RegistryException( fe.getMessage() );
    }

  }
c) 修改UserMgmSessionFacadeLocal中的函数声, 使之与bean    class 中的一致 :

   为userRegister方法,添键throws RegisterException
   
   public void userRegister(UserDTO user, 
            ContactInfoDTO info) throws RegistryException;

d) 编译

==========================================================
在web.xml中配值UserMgmSessionFacade的ejb reference

a) 双击web.xml ,在左下角选择ejb local reference
   --> add

   配置:
      reference name : ejb/UserMgmSessionFacade
      link           : UserMgmSessionFacade
      type           : session
      local home : ejbs.UserMgmSessionFacadeLocalHome
      local      : ejbs.UserMgmSessionFacadeLocal
      
==========================================================
在工程中新建package : delegate
在delegate包中,新建 UserMgmDelegate


package delegate;
import ejb.UserMgmSessionFacadeLocal;
import ejb.UserMgmSessionFacadeLocalHome;
import exception.*;
import util.ServiceLocator;
import dto.*;
import javax.ejb.CreateException;
import javax.ejb.FinderException;
import java.util.Collection;

public class UserMgmDelegate {

  private UserMgmSessionFacadeLocal sessionLocal ;

  public UserMgmDelegate() throws                      ServiceLocatorException,CreateException{

    ServiceLocator locator = ServiceLocator.getInstance();
    UserMgmSessionFacadeLocalHome home =                                  (UserMgmSessionFacadeLocalHome)
                    locator.getEJBLocalHome(                           "java:comp/env/ejb/userMgmSessionFacade" );
    sessionLocal = home.create();
  }

  public void userRegistry( UserDTO user,
          ContactInfoDTO info ) throws RegistryException{
    sessionLocal.userRegister( user,info );
  }
}

==========================================================

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -