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

📄 day09.txt

📁 网络购物系统开发详细步骤
💻 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 + -