📄 customerbean.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 + -