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

📄 customerbean.java

📁 21天精通Java,这是一本英文书
💻 JAVA
字号:
package data;

import java.rmi.*;
import java.sql.*;
import java.util.*;
import javax.ejb.*;
import javax.naming.*;
import javax.sql.*;

public abstract class CustomerBean implements EntityBean
{

    private JobLocalHome jobHome;

    private String[] address = new String[2]; // derived

    public abstract void setLogin(String login);

    public abstract String getLogin ();

    public abstract String getName ();
    public abstract void setName(String name);

    public abstract String getEmail ();    
    public abstract void setEmail(String email);

    public void setAddress(String[] address){
        for (int i=0; i<Math.min(this.address.length,address.length); i++)
            this.address[i] = address[i];
    }

    public abstract String getAddress1();
    public abstract void setAddress1(String address1);

    public abstract String getAddress2();
    public abstract void setAddress2(String address2);

    public String[] getAddress() {

        String[] res = new String[address.length];
        System.arraycopy(this.address,0,res,0,res.length);

        return res;
    }

    // EJB methods start here

    public void ejbPostCreate (String login, String name, String email) {}

    public String ejbCreate (String login, String name, String email) throws CreateException {

/*
        // for BMP, there was a workaround here, namely to call ejbFindByPrimaryKey
        // under CMP, cannot call since doesn't exist.
        // could look up own home interface ... but instead,
        // will rely on unique primary key on RDBMS table
        try {
            ((CustomerLocalHome)ctx.getEJBHome()).findByPrimaryKey(login);
            throw new CreateException("Duplicate customer name: "+login);
        }
        catch (FinderException ex) {}
*/

        setLogin(login);
        setName(name);
        setEmail(email);
        setAddress(new String[] {"", ""});

        return null;
    }
    

    public void ejbLoad(){
        // derive this.address array
        address[0] = null;
        address[1] = null;
    if (getAddress1() != null && getAddress2() != null) {
            address[0] = getAddress1();
            address[1] = getAddress2();
        } else if (getAddress1() != null && getAddress2() == null) {
            address[0] = getAddress1();
        } else if (getAddress1() == null && getAddress2() != null) {
            address[0] = getAddress2();
        }
    }

    public void ejbStore(){

        // set CMP fields based on derived this.address array
        setAddress1(null);
        setAddress2(null);
        if ( address.length==1 && address[0] !=null) {
            setAddress1(address[0]);
        } else
        if (address.length==2) {
            if (address[0]!=null && address[1]!=null) {
                setAddress1(address[0]);
                setAddress2(address[1]);
            } else if (address[0]!=null && address[1]==null) {
                setAddress1(address[0]);
            } else if (address[1]==null && address[1]!=null) {
                setAddress1(address[1]);
            }
        }

    }

    public void ejbPassivate(){
        setLogin(null);
        setName(null);
        setEmail(null);
            address[0] = null;
            address[1] = null;
    }

    public void ejbActivate(){
    }

    public void ejbRemove(){

        // bean-managed relationship
        jobHome.deleteByCustomer( getLogin() );
    }

    private EntityContext ctx;
    
    public void setEntityContext(EntityContext ctx) {
        this.ctx = ctx;

        InitialContext ic = null;
        try {
            ic = new InitialContext();
            jobHome = (JobLocalHome)ic.lookup("java:comp/env/ejb/JobLocal");
        }
        catch (NamingException ex) {
            error("Error connecting to java:comp/env/jdbc/Agency:",ex);
            return;
        }

    }    

    public void unsetEntityContext() {
        this.ctx = null;
    }    


    private void error (String msg, Exception ex) {
        String s = "CustomerBean: "+msg + "\n" + ex;
        System.out.println(s);
        throw new EJBException(s,ex);
    }
    
}

⌨️ 快捷键说明

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