📄 day09.txt
字号:
1, 创建表:
create table orderstatus(
statusid integer primary key,
name varchar2(32),
description varchar2(64)
);
insert into orderstatus values(1, 'pending',
' wait to process');
insert into orderstatus values(2, 'processing',
'in processing');
insert into orderstatus values(3, 'finished',
'order processed');
create table payway(
paywayid integer primary key,
paystyle varchar2(16)
);
insert into payway(paywayid,paystyle)
values( 1,'paystyle 1');
insert into payway(paywayid,paystyle)
values( 2, 'paystyle 2');
insert into payway(paywayid,paystyle)
values( 3, 'paystyle 3');
insert into payway(paywayid,paystyle)
values( 4, 'paystyle 4');
create table order (
orderid integer primary key,
name varchar2(32) not null,
finished integer not null,
cost double,
cardno varchar2(16),
userid varchar2(16) references user(userid),
statusid integer references orderstatus(statusid),
paywayid integer references payway(paywayid)
);
create table OrderLine(
lineid integer primary key,
orderid integer references order(orderid),
productid varchar2(16) references product(productid),
amount integer not null
);
==========================================================
2, 创建OrderEJB
右键点击数据源中的 --> order ---> create entity 2.0 bean
bean name : OrderEJB
abstract schema name : Order
interface : local
sigle mapping : ORDER
---> class and package
package : ejbs
bean name : OrderEJB
bean class : OrderBean
local home : OrderLocalHome
local : OrderLocal
--> ok
==========================================================
3,修改OrderEJB的属性:
orderid :
type : Integer
is primarykey : true
in ejb create : true
name :
type : String
is primarykey : false
in ejb create : true
finished :
type : int
is primarykey : false
in ejb create : true
cost :
type : double
is primarykey : false
in ejb create : true
cardno :
type : String
is primarykey : false
in ejb create : true
userid :
type : String
is primarykey : false
in ejb create : true
==========================================================
4, 删除属性 statusid ,paywayid
==========================================================
5, 创建PaywayEJB
右键点击数据源中的 --> payway ---> create entity 2.0 bean
bean name : PaywayEJB
abstract schema name : Payway
interface : local
sigle mapping : PAYWAY
---> class and package
package : ejbs
bean name : PaywayEJB
bean class : PaywayBean
local home : PaywayLocalHome
local : PaywayLocal
--> ok
==========================================================
6, 修改属性:
paywayid :
type : Integer
is primarykey : true
in ejb create : true
paywaystyle :
type : String
is primarykey : false
in ejb create : true
==========================================================
7,从PaywayEJB发起,创建PaywayEJB到OderEJB 的 1:* 关系
Mutiplicity : one to many
Navigability : bidirectional
cascade-delete : false
db-cascade-delete : false
field name : orders
return type : Collection
=========================================================
8, 编辑 OrderEJB 中的相应关系域
field name : payway
return type: bean instance
---> Edit RDBMS RELATION... 编辑对应关系
=========================================================
9, 创建OrderStatusEJB
右键点击数据源中的 --> orderstatus ---> create entity 2.0 bean
bean name : OrderStatusEJB
abstract schema name : OrderStatus
interface : local
sigle mapping : ORDERSTATUS
---> class and package
package : ejbs
bean name : OrderStatusEJB
bean class : OrderStatusBean
local home : OrderStatusLocalHome
local : OrderStatusLocal
--> ok
=========================================================
10, 修改属性:
statusid :
type : Integer
is primarykey : true
in ejb create : true
name :
type : String
is primarykey : false
in ejb create : true
description :
type : String
is primarykey : false
in ejb create : true
==========================================================
11,从OderStatusEJB发起,创建OrderStatusEJB到OderEJB 的 1:* 关系
Mutiplicity : one to many
Navigability : bidirectional
cascade-delete : false
db-cascade-delete : false
field name : orders
return type : Collection
==========================================================
12, 编辑 OrderEJB 中的相应关系域
field name : orderStatus
return type: bean instance
---> Edit RDBMS RELATION... 编辑对应关系
=========================================================
13, 创建OrderlineEJB
右键点击数据源中的 --> orderline ---> create entity 2.0 bean
bean name : OrderlineEJB
abstract schema name : Orderline
interface : local
sigle mapping : ORDERLINE
---> class and package
package : ejbs
bean name : OrderlineEJB
bean class : OrderlineBean
local home : OrderlineLocalHome
local : OrderlineLocal
--> ok
=========================================================
14,修改OrderlineEJB的属性:
lineid :
type : Integer
is primarykey : true
in ejb create : true
amount :
type : int
is primarykey : false
in ejb create : true
=========================================================
15, 删除属性 orderid ,productid
=========================================================
16,从ProductEJB发起,创建ProductEJB到OderlineEJB 的 1:* 关系
Mutiplicity : one to many
Navigability : bidirectional
cascade-delete : false
db-cascade-delete : false
field name : orderlines
return type : Collection
=========================================================
17, 编辑 OrderEJB 中的相应关系域
field name : product
return type: bean instance
---> Edit RDBMS RELATION... 编辑对应关系
=========================================================
18,从OrderEJB发起,创建OrderEJB到OderlineEJB 的 1:* 关系
Mutiplicity : one to many
Navigability : bidirectional
cascade-delete : false
db-cascade-delete : false
field name : orderlines
return type : Collection
=========================================================
19, 编辑 OrderEJB 中的相应关系域
field name : orderid
return type: bean instance
---> Edit RDBMS RELATION... 编辑对应关系
=========================================================
20, 在exceptions 包内 创建OrderException
=========================================================
21, 创建 sessionbean ShoppingSessionFacadeEJB
bean name : ShoppingSessionFacadeEJB
session type : stateless
interface : local
Transaction : Container
---> class and package
bean name : ShoppingSessionFacadeEJB
bean class : ShoppingSessionFacadeBean
local home : ShoppingSessionFacadeLocalHome
local : ShoppingSessionFacadeLocal
=========================================================
22, 为ShoppingSessionFacadeEJB 添加属性:
右键点击ShoppingSessionFacadeEJB --> add --> field
1) field name : orderLocalHome
type : OrderLocalHome
2) field name : orderlineLocalHome
type : OrderlineLocalHome
3) field name : paywayLocalHome
type : PaywayLocalHome
4) field name : orderStatusLocalHome
type : OrderStatusLocalHome
5) field name : sequenceLocalHome
type : SequenceLocalHome
6) field name : productLocalHome
type : ProductLocalHome
=========================================================
22, 为ShoppingSessionFacadeEJB 添加方法:
右键点击ShoppingSessionFacadeEJB --> add --> method
method name : addOrder
return type : void
input parameter : double cost, String no,
String uid, String payway,
Collection lines
interface : local
=========================================================
23,双击ShoppingSessionFacadeEJB , 配置ejb local reference
1, refernece name : ejb/OrderEJB --> isLink
link : OrderEJB
2, refernece name : ejb/OrderlineEJB --> isLink
link : OrderlineEJB
3, refernece name : ejb/OrderStatusEJB --> isLink
link : OrderStatusEJB
4, refernece name : ejb/PaywayEJB --> isLink
link : PaywayEJB
5, refernece name : ejb/ProductEJB --> isLink
link : ProdcutEJB
6, refernece name : ejb/SequenceEJB --> isLink
link : SequenceEJB
=========================================================
23, 右键点击 ShoppingSessionFacadeEJB ---> view bean source
=========================================================
24, 在ejbCreate() 中初始化成员变量
public void ejbCreate() throws CreateException {
try{
ServiceLocator locator =
ServiceLocator.getInstance();
orderLocalHome = ( OrderLocalHome )
locator.getEJBLocalHome(
"java:comp/env/ejb/OrderEJB" );
orderlineLocalHome = ( OrderlineLocalHome )
locator.getEJBLocalHome(
"java:comp/env/ejb/OrderlineEJB" );
paywayLocalHome = ( PaywayLocalHome )
locator.getEJBLocalHome(
"java:comp/env/ejb/PaywayEJB" );
orderStatusLocalHome = ( OrderStatusLocalHome )
locator.getEJBLocalHome(
"java:comp/env/ejb/OrderStatusEJB" );
sequenceLocalHome = ( SequenceLocalHome )
locator.getEJBLocalHome(
"java:comp/env/ejb/SequenceEJB" );
productLocalHome = ( ProductLocalHome )
locator.getEJBLocalHome(
"java:comp/env/ejb/ProductEJB" );
}catch( ServiceLocatorException se ){
se.printStackTrace();
throw new CreateException( se.getMessage() );
}
}
=========================================================
25,为 addOrder添加函数体:
public void addOrder(double cost, String no,
String uid, String payway,
Collection lines) throws OrderException {
try{
SequenceLocal seqLocal = sequenceLocalHome.
findByPrimaryKey( new Integer(1));
OrderStatusLocal osLocal = orderStatusLocalHome.
findByPrimaryKey(new Integer(1));
PaywayLocal payLocal = paywayLocalHome.
findByPrimaryKey( new Integer(payway));
OrderLocal orderLocal = orderLocalHome.create(
new Integer(seqLocal.getSequence()),
"dddd",0,cost,no,uid);
orderLocal.setFinished( 0 );
orderLocal.setOrderStatus(osLocal);
orderLocal.setPayway(payLocal);
Iterator i = lines.iterator();
while( i.hasNext() ){
OrderLine line = (OrderLine)i.next();
int amount = line.getAmount();
int seq = seqLocal.getSequence();
OrderlineLocal lineLocal = orderlineLocalHome.
create(new Integer(seq),amount);
ProductLocal proLocal = productLocalHome.
findByPrimaryKey(
line.getProduct().getProductId());
lineLocal.setOrderid( orderLocal );
lineLocal.setProduct( proLocal );
}
}catch( CreateException ce ){
ce.printStackTrace();
throw new OrderException( ce.getMessage() );
}
catch( FinderException fe ){
fe.printStackTrace();
throw new OrderException ( fe.getMessage() );
}
}
=========================================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -