📄 day01.txt
字号:
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 + -