studentejb.java

来自「100多M的J2EE培训内容」· Java 代码 · 共 335 行

JAVA
335
字号
package bible.ejb.entity.bmp;import javax.ejb.*;import java.sql.*;import javax.sql.DataSource;import javax.naming.InitialContext;import java.util.Collection;import java.util.Vector;public class StudentEJB implements EntityBean{  private EntityContext context;  private static final String DATASOURCE    = "java:comp/env/jdbc/connectionPool";  public String id;  public String firstName;  public String lastName;  public String eMailAddr;  public String phone;  public String ssNum;  public void setEntityContext(EntityContext ec) {    context = ec;  }  public void unsetEntityContext() {    this.context = null;  }  public StudentPK ejbCreate(StudentVO student)      throws CreateException  {    this.id = student.getId();    setStudentData(student);    Connection con = null;    PreparedStatement ps = null;    StudentPK key = null;    try {      con = getConnection();      ps = con.prepareStatement("insert into STUDENT (ID,FIRST_NAME, LAST_NAME, EMAIL_ADDR, PHONE, SSNUM) values (?, ?, ?, ?, ?, ?)");      ps.setString(1, id);      ps.setString(2, firstName);      ps.setString(3, lastName);      ps.setString(4, eMailAddr);      ps.setString(5, phone);      ps.setString(6, ssNum);      int ret = ps.executeUpdate();      if (ret != 1) {        throw new CreateException("Create failed");      }      key = new StudentPK();      key.id = id;      return key;    }    catch (Exception e) {      throw new CreateException(e.getMessage());    }    finally {      cleanup(con, ps);    }  }  public void ejbPostCreate(StudentVO student) {  }  public void ejbLoad()  {    StudentPK key = (StudentPK)context.getPrimaryKey();    try {      readData(key);    }    catch(Exception e) {      throw new EJBException(e.getMessage());    }  }  public void ejbStore()  {    Connection con = null;    PreparedStatement ps = null;    try {      con = getConnection();      StudentPK key =        (StudentPK)context.getPrimaryKey();      ps = con.prepareStatement("update STUDENT set FIRST_NAME = ?,LAST_NAME = ?,EMAIL_ADDR = ?,PHONE = ?,SSNUM = ? where ID = ?");      ps.setString(1, firstName);      ps.setString(2, lastName);      ps.setString(3, eMailAddr);      ps.setString(4, phone);      ps.setString(5, ssNum);      ps.setString(6, key.id);      int ret = ps.executeUpdate();      if (ret == 0) {        throw new EJBException("ejbStore failed");      }    }    catch (Exception e) {      throw new EJBException(e.getMessage());    }    finally {      cleanup(con, ps);    }  }  public void ejbRemove() throws RemoveException  {    Connection con = null;    PreparedStatement ps = null;    try {      con = getConnection();      StudentPK key =          (StudentPK) context.getPrimaryKey();      ps = con.prepareStatement("delete from STUDENT where ID=?");      ps.setString(1, key.id);      int result = ps.executeUpdate();      if (result == 0) {        throw new RemoveException("Remove failed");      }    }    catch (Exception e) {      throw new RemoveException(e.getMessage());    }    finally {      cleanup(con, ps);    }  }  public void ejbActivate() {  }  public void ejbPassivate() {  }  public StudentPK ejbFindByPrimaryKey(StudentPK key)      throws FinderException  {    try {      readData(key);      return key;    }    catch (Exception e) {      throw new FinderException(e.getMessage());    }  }  public StudentPK ejbFindBySSNum(String ssNum)    throws FinderException  {    Connection con = null;    PreparedStatement ps = null;    try {      con = getConnection();      ps = con.prepareStatement("select ID, FIRST_NAME,LAST_NAME,EMAIL_ADDR,PHONE,SSNUM from STUDENT where SSNUM = ?");      ps.setString(1, ssNum);      ResultSet rs = ps.executeQuery();      if (!rs.next()) {        throw new FinderException("Record not found");      }      else {        loadAttributes(rs);      }      rs.close();      StudentPK key = new StudentPK();      key.id = id;      return key;    }    catch (Exception e) {      throw new EJBException(e.getMessage());    }    finally {      cleanup(con, ps);    }  }  public Collection ejbFindByLastName(String lastName)    throws FinderException  {    Connection con = null;    PreparedStatement ps = null;    try {      con = getConnection();      ps = con.prepareStatement("select ID from STUDENT where LAST_NAME = ?");      ps.setString(1, lastName);      ResultSet rs = ps.executeQuery();      Vector students = new Vector();      StudentPK key = null;      while (rs.next()) {        key = new StudentPK();        key.id = rs.getString(1);        students.addElement(key);      }      rs.close();      return students;    }    catch (Exception e) {      throw new FinderException(e.getMessage());    }    finally {      cleanup(con, ps);    }  }  private void loadAttributes(ResultSet rs)      throws SQLException  {    id = rs.getString(1);    firstName = rs.getString(2);    lastName = rs.getString(3);    eMailAddr = rs.getString(4);    phone = rs.getString(5);    ssNum = rs.getString(6);  }  private void cleanup(Connection con, PreparedStatement ps)  {    try {      if (ps != null) {        ps.close();      }      if (con != null) {        con.close();      }    }    catch (Exception e) {      throw new EJBException (e);    }  }  public StudentVO getStudentData()  {    StudentVO student = new StudentVO();    student.setFirstName(firstName);    student.setLastName(lastName);    student.setPhone(phone);    student.setEMailAddr(eMailAddr);    student.setSSNum(ssNum);    return student;  }  public void setStudentData(StudentVO student)  {    firstName = student.getFirstName();    lastName = student.getLastName();    eMailAddr = student.getEMailAddr();    phone = student.getPhone();    ssNum = student.getSSNum();  }  public String getFirstName() {    return(firstName);  }  public void setFirstName(String firstName) {    this.firstName = firstName;  }  public String getLastName() {    return lastName;  }  public void setLastName(String lastName) {    this.lastName = lastName;  }  public String getEMailAddr() {    return eMailAddr;  }  public void setEMailAddr(String eMailAddr) {    this.eMailAddr = eMailAddr;  }  public String getPhone() {    return phone;  }  public void setPhone(String phone) {    this.phone = phone;  }  public String getSSNum() {    return ssNum;  }  public void setSSNum(String ssNum) {    this.ssNum = ssNum;  }  private Connection getConnection() throws EJBException  {    try {      InitialContext ic = new InitialContext();      DataSource ds = (DataSource)ic.lookup(DATASOURCE);      return ds.getConnection();    }    catch (Exception e) {      throw new EJBException(e.getMessage());    }  }  private void readData(StudentPK key) throws        FinderException, EJBException  {    Connection con = null;    PreparedStatement ps = null;    try {      con = getConnection();      ps = con.prepareStatement("select ID, FIRST_NAME,LAST_NAME,EMAIL_ADDR,PHONE,SSNUM from STUDENT where ID = ?");      ps.setString(1, key.id);      ResultSet rs = ps.executeQuery();      if (!rs.next()) {        throw new FinderException("Record not found");      }      else {        loadAttributes(rs);      }      rs.close();    }    catch (Exception e){      throw new EJBException(e.getMessage());    }    finally {      cleanup(con, ps);    }  }}

⌨️ 快捷键说明

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