StudentBmpBean.java
上传用户:dinglihq
上传日期:2013-02-04
资源大小:99958k
文件大小:17k
源码类别:

Java编程

开发平台:

Java

  1. package bmpsample;
  2. import javax.ejb.*;
  3. import java.sql.*;
  4. import java.util.*;
  5. public class StudentBmpBean implements EntityBean {
  6.   EntityContext entityContext;
  7.   java.lang.String untitledField1;
  8.   java.lang.String studentID;
  9.   java.lang.String firstName;
  10.   java.lang.String lastName;
  11.   java.lang.String email;
  12.   java.lang.String phone;
  13.   java.lang.String password;
  14.   java.lang.String companyName;
  15.   java.lang.String primaryKey;
  16.   private Connection conn = null;
  17.   //private DataSource dataSource = null;
  18.   RosterDAO rosterDAO = null;
  19.   /*public java.lang.String ejbCreate(java.lang.String untitledField1) throws CreateException {
  20.     setUntitledField1(untitledField1);
  21.     return null;
  22.   }*/
  23.   public java.lang.String ejbCreate(String key, String pw, String firstName, String lastName, String email, String phone, String company) throws CreateException {
  24.     System.out.println("*** In StudentEJB -- ejbCreate(args..)  called *****");
  25.     this.primaryKey = key;
  26.     this.password = pw;
  27.     this.firstName = firstName;
  28.     this.lastName = lastName;
  29.     this.email = email;
  30.     this.phone = phone;
  31.     this.companyName = company;
  32.     try {
  33.       System.out.println("*** In StudentEJB -- insertStudent() called *****");
  34.       insertStudent(this.primaryKey, this.password, this.firstName, this.lastName, this.email, this.phone,
  35.                     this.companyName);
  36.     }
  37.     catch (Exception e) {
  38.       System.out.println(" lookUp() error =" + e.getMessage());
  39.     }
  40.     studentID = primaryKey;
  41.     return primaryKey;
  42.   }
  43.   //public void ejbPostCreate(java.lang.String untitledField1) throws CreateException {
  44.     /**@todo Complete this method*/
  45.   //}
  46.   public void ejbPostCreate(String key, String pw, String firstName, String lastName, String email, String phone, String company) throws CreateException {
  47.     System.out.println(
  48.         "*** In StudentEJB -- ejbPostCreate(args..)  called *****");
  49.   }
  50.   public void ejbRemove() throws RemoveException {
  51.     String pKey = (String) entityContext.getPrimaryKey();
  52.     try {
  53.       deleteStudent(pKey);
  54.     }
  55.     catch (Exception e) {
  56.       throw new EJBException("ejbRemove =" + e.getMessage());
  57.     }
  58.     System.out.println("n*** In StudentEJB -- ejbRemove() exiting *****");
  59.   }
  60.   public void setFirstName(java.lang.String firstName) {
  61.     this.firstName = firstName;
  62.   }
  63.   public void setLastName(java.lang.String lastName) {
  64.     this.lastName = lastName;
  65.   }
  66.   public void setEmail(java.lang.String email) {
  67.     this.email = email;
  68.   }
  69.   public void setPhone(java.lang.String phone) {
  70.     this.phone = phone;
  71.   }
  72.   public void setPassword(java.lang.String password) {
  73.     this.password = password;
  74.   }
  75.   public void setCompanyName(java.lang.String companyName) {
  76.     this.companyName = companyName;
  77.   }
  78.   public void setPrimaryKey(java.lang.String primaryKey) {
  79.     this.primaryKey = primaryKey;
  80.   }
  81.   public java.lang.String getFirstName() {
  82.     return firstName;
  83.   }
  84.   public java.lang.String getLastName() {
  85.     return lastName;
  86.   }
  87.   public java.lang.String getEmail() {
  88.     return email;
  89.   }
  90.   public java.lang.String getPhone() {
  91.     return phone;
  92.   }
  93.   public java.lang.String getPassword() {
  94.     return password;
  95.   }
  96.   public java.lang.String getCompanyName() {
  97.     return companyName;
  98.   }
  99.   public java.lang.String getPrimaryKey() {
  100.     return primaryKey;
  101.   }
  102.   public java.lang.String ejbFindByPrimaryKey(java.lang.String primaryKey) throws FinderException {
  103.     System.out.println(
  104.         "*** In StudentEJB -- ejbFindByPrimaryKey() called *****");
  105.     ResultSet rs = null;
  106.     // search the database for the primary key.
  107.     try {
  108.       rs = selectByPrimaryKey(primaryKey);
  109.       rs.last();
  110.       int count = rs.getRow();
  111.       System.out.println("已成功完成查询");
  112.       rs.beforeFirst();
  113.       if (count == 0) {
  114.         throw new NoSuchEntityException(" Primary Key =" + primaryKey +
  115.                                         " not found in the database!");
  116.       }
  117.       else if (count == 1) {
  118.         if (rs.next()) {
  119.           primaryKey = rs.getString(1);
  120.         }
  121.       }
  122.       else if (count > 1) {
  123.         throw new FinderException(" Duplicate Primary Key +" + primaryKey);
  124.       }
  125.       rs.close();
  126.     }
  127.     catch (SQLException se) {
  128.       throw new EJBException("ejbFindByPrimaryKey  SQL error =" + se.getMessage());
  129.     }
  130.     catch (Exception e) {
  131.       throw new EJBException("ejbFindByPrimaryKey error =" + e.getMessage());
  132.     }
  133.     studentID = primaryKey;
  134.     return primaryKey;
  135.   }
  136.   public void ejbLoad() {
  137.     System.out.println("n*** In StudentEJB -- ejbLoad() called *****");
  138.     ResultSet rs = null;
  139.     primaryKey = (String) entityContext.getPrimaryKey();
  140.     String returnedPK = null;
  141.     try {
  142.       loadStudent();
  143.     }
  144.     catch (Exception e) {
  145.       throw new EJBException("ejbStore -- UPDATE =" + e.getMessage());
  146.     }
  147.     System.out.println("n*** In StudentEJB -- ejbLoad() exiting *****");
  148.   }
  149.   public void ejbStore() {
  150.     System.out.println("*** In StudentEJB -- ejbStore() called *****nn");
  151.     System.out.println("nIn ejbStore() primary Key=" + primaryKey +
  152.                        ", password=" + password + ", first=" + firstName +
  153.                        ", last=" + lastName + ", email=" + email + ", phone=" +
  154.                        phone + ", company=" + companyName);
  155.     try {
  156.       updateStudent(primaryKey, password, firstName, lastName, email, phone,
  157.                     companyName);
  158.     }
  159.     catch (Exception e) {
  160.       throw new EJBException(" <<--- ejbStore -- UPDATE =" + e.getMessage());
  161.     }
  162.   }
  163.   public void ejbActivate() {
  164.     System.out.println("*** In StudentEJB -- ejbActivate() called **");
  165.     primaryKey = (String) entityContext.getPrimaryKey();
  166.   }
  167.   public void ejbPassivate() {
  168.     System.out.println("*** In StudentEJB -- ejbPassivate() called **");
  169.     primaryKey = null;
  170.   }
  171.   public void unsetEntityContext() {
  172.     this.entityContext = null;
  173.   }
  174.   public void setEntityContext(EntityContext entityContext) {
  175.     this.entityContext = entityContext;
  176.     try {
  177.       rosterDAO = new RosterDAO();
  178.       JNDIlookUp();
  179.     }
  180.     catch (Exception e) {
  181.       System.out.println("Error in setEntityContext() -  =" + e.getMessage());
  182.     }
  183.   }
  184.   public java.util.Collection ejbFindByCompanyName(String key) throws FinderException {
  185.     ArrayList list = null;
  186.     System.out.println(
  187.         "n*** In StudentEJB -- ejbFindByCompanyName() called *****");
  188.     try {
  189.       list = (ArrayList) selectByCompanyName(key);
  190.     }
  191.     catch (SQLException se) {
  192.       throw new FinderException(" SQL exception " + se.getMessage());
  193.     }
  194.     catch (StudentDAOException daoe) {
  195.       throw new FinderException("StudentDAOException =" + daoe.getMessage());
  196.     }
  197.     catch (Exception e) {
  198.       throw new FinderException("Exception " + e.getMessage());
  199.     }
  200.     System.out.println(
  201.         "n*** In StudentEJB -- ejbFindByCompanyName() returning to client *****");
  202.     return list;
  203.   }
  204. //*******************************************************************************
  205.    private void JNDIlookUp() throws StudentDAOException {
  206.      try {
  207.        System.out.println(
  208.            "n====== In StudentEJB-- lookUp() before initialcontext =====");
  209.        //InitialContext ictx = new InitialContext();
  210.        System.out.println(
  211.            "********* In StudentEJB -- lookUp() after initialcontext *****");
  212.        //dataSource = (DataSource) ictx.lookup("java:comp/env/jdbc/JCampDS");
  213. //           Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
  214.       Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
  215. //           conn=DriverManager.getConnection("jdbc:odbc:CWJ","sa","sa");
  216.       conn = DriverManager.getConnection(
  217.           "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=RegSystem;User=sa;Password=sa");
  218.        //conn = dataSource.getConnection();
  219.        System.out.println(
  220.            "== In StudentEJB got connection -- jcampDataSource lookup OK!");
  221.      }
  222.      catch (Exception se) {
  223.        throw new StudentDAOException(
  224.            " SQL exception while attempting to OPEN connection =" +
  225.            se.getMessage());
  226.      }
  227.    }
  228.   public void insertStudent(String pKey, String password, String firstName, String lastName, String email, String phone, String companyName) throws StudentDAOException {
  229.     System.out.println("----->>>   - insertStudent() ");
  230.     PreparedStatement pstmt = null;
  231.     /*Calendar calendar = Calendar.getInstance();
  232.     java.util.Date theTime = calendar.getTime();
  233.     java.sql.Date now = new java.sql.Date(theTime.getTime());*/
  234.     try {
  235.       pstmt = conn.prepareStatement("Insert into StudentEJBTable(studentID, password, firstName, lastName, email, phone, companyName) values(?,?,?,?,?,?,?)");
  236.       pstmt.setString(1, pKey);
  237.       pstmt.setString(2, password);
  238.       pstmt.setString(3, firstName);
  239.       pstmt.setString(4, lastName);
  240.       pstmt.setString(5, email);
  241.       pstmt.setString(6, phone);
  242.       pstmt.setString(7, companyName);
  243.       //pstmt.setDate(8, now);
  244.       System.out.println("  prepared statment OK");
  245.       pstmt.executeUpdate();
  246.       System.out.println("  Student inserted");
  247.     }
  248.     catch (SQLException se) {
  249.       throw new StudentDAOException(" Query exception " + se.getMessage());
  250.     }
  251.     finally {
  252.       closeStatement(pstmt);
  253.     }
  254.     System.out.println("  - inserted successfully");
  255.   }
  256.   public void updateStudent(String pKey, String password, String firstName, String lastName, String email, String phone, String companyName) throws StudentDAOException {
  257.     System.out.println("--->>>   - updateStudent() key =" + pKey +
  258.                        ", password=" + password + ", last=" + lastName +
  259.                        ", first=" + firstName + ", email=" + email + ", phone=" +
  260.                        phone + ", company=" + companyName + "nn");
  261.     PreparedStatement pstmt = null;
  262.     try {
  263.       String updateStatement = "UPDATE StudentEJBTable set password = ?, firstName = ?, lastName = ?, email = ?, phone = ?, companyName = ? WHERE studentID = ?";
  264.       System.out.println(" Executing Update Statement ");
  265.       pstmt = conn.prepareStatement(updateStatement);
  266.       pstmt.setString(1, password);
  267.       pstmt.setString(2, firstName);
  268.       pstmt.setString(3, lastName);
  269.       pstmt.setString(4, email);
  270.       pstmt.setString(5, phone);
  271.       pstmt.setString(6, companyName);
  272.       pstmt.setString(7, pKey);
  273.       int rowCount = pstmt.executeUpdate();
  274.       if (rowCount == 0) {
  275.         throw new StudentDAOException("Update Failed for Student primary key =" +
  276.                                       pKey);
  277.       }
  278.       else {
  279.         System.out.println("  - Updated successfully");
  280.       }
  281.     }
  282.     catch (SQLException se) {
  283.       throw new StudentDAOException(
  284.           " SQL exception while attempting to UPDATE =" + se.getMessage());
  285.     }
  286.     finally {
  287.       closeStatement(pstmt);
  288.     }
  289.   }
  290.   public ResultSet selectByPrimaryKey(String pKey) throws StudentDAOException {
  291.     System.out.println("---->>>   - selectByPrimaryKey pkey =" + pKey);
  292.     //PreparedStatement pstmt = null;
  293.     Statement pstmt=null;
  294.     ResultSet rs = null;
  295.     System.out.println(
  296.         "n  - in selectPrimaryKey() before select statement ********");
  297.     try {
  298.       if(conn==null){
  299.         JNDIlookUp();
  300.       }
  301.       //pstmt = conn.prepareStatement(selectStatement);
  302.       pstmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
  303.       String selectStatement =
  304.           "SELECT * from StudentEJBTable where studentID ='"+pKey+"'";
  305.      // pstmt.setString(1, pKey);
  306.       rs = pstmt.executeQuery(selectStatement);
  307.       System.out.println(
  308.           "n  - in selectPrimaryKey() successful ");
  309.     }
  310.     catch (SQLException se) {
  311.       throw new StudentDAOException(
  312.           " SQL exception while attempting to SELECT By Primary Key =" +
  313.           se.getMessage());
  314.     }
  315.     finally {
  316.       // closeStatement(pstmt);
  317.     }
  318.     return rs;
  319.   }
  320.   public void deleteStudent(String pKey) throws StudentDAOException {
  321.     System.out.println("---->>>   - delete() pkey =" + pKey);
  322.     PreparedStatement pstmt = null;
  323.     try {
  324.       String updateStatement =
  325.           "DELETE FROM StudentEJBTable WHERE studentID = ?";
  326.       pstmt = conn.prepareStatement(updateStatement);
  327.       pstmt.setString(1, pKey);
  328.       int rowCount = pstmt.executeUpdate();
  329.       if (rowCount == 0) {
  330.         throw new StudentDAOException("DELETE Failed for Student studentID =" +
  331.                                       pKey);
  332.       }
  333.     }
  334.     catch (SQLException se) {
  335.       throw new StudentDAOException(
  336.           " SQL exception while attempting to DELETE =" + se.getMessage());
  337.     }
  338.     finally {
  339.       closeStatement(pstmt);
  340.     }
  341.   }
  342.   public void closeStatement(PreparedStatement pstmt) throws StudentDAOException {
  343.     System.out.println("n ====   - closeStatement() ********");
  344.     try {
  345.       if (pstmt != null) {
  346.         pstmt.close();
  347.       }
  348.     }
  349.     catch (SQLException se) {
  350.       throw new StudentDAOException(
  351.           " SQL exception while attempting to close statement =" +
  352.           se.getMessage());
  353.     }
  354.   }
  355.   private void loadStudent() throws StudentDAOException {
  356.     System.out.println("n*** In StudentEJB -- loadStudent() called *****");
  357.     ResultSet rs = null;
  358.     primaryKey = (String) entityContext.getPrimaryKey();
  359.     String returnedPK = null;
  360.     try {
  361.       rs = selectByPrimaryKey(primaryKey);
  362.       rs.last();
  363.       int size = rs.getRow();
  364.       System.out.println("已成功完成查询");
  365.       rs.beforeFirst();
  366.       System.out.println(" ---> in loadStudent after selectByPrimry() -----");
  367.       if (size == 1) {
  368.         if (rs.next()) {
  369.           returnedPK = rs.getString(1);
  370.           password = rs.getString(2);
  371.           firstName = rs.getString(3);
  372.           lastName = rs.getString(4);
  373.           email = rs.getString(5);
  374.           phone = rs.getString(6);
  375.           companyName = rs.getString(7);
  376.           //createDate = rs.getDate(8);
  377.           rs.close();
  378.         }
  379.       }
  380.       else {
  381.         System.out.println(" ejbLoad() error size =" + size);
  382.       }
  383.       // rs.close();
  384.     }
  385.     catch (Exception e) {
  386.       throw new EJBException("ejbStore -- UPDATE =" + e.getMessage());
  387.     }
  388.     System.out.println("--- after  loadStudent() primary Key=" + primaryKey +
  389.                        ", password=" + password + ", first=" + firstName +
  390.                        ", last=" + lastName + ", email=" + email + ", phone=" +
  391.                        phone + ", company=" + companyName);
  392.     System.out.println("n*** In StudentEJB -- loadStudent() exiting *****");
  393.     primaryKey = returnedPK;
  394.   }
  395.   private Collection selectByCompanyName(String cName) throws StudentDAOException, SQLException {
  396.     System.out.println(
  397.         "n*** In StudentEJB -- selectByComanyName() companyName =" + cName +
  398.         " *****");
  399.     String selectStatement =
  400.         "SELECT studentID FROM StudentEJBTable WHERE companyName = ? ";
  401.     PreparedStatement pstmt = conn.prepareStatement(selectStatement);
  402.     pstmt.setString(1, cName);
  403.     ResultSet rs = pstmt.executeQuery();
  404.     ArrayList aList = new ArrayList();
  405.     while (rs.next()) {
  406.       String studentID = rs.getString(1);
  407.       aList.add(studentID);
  408.       System.out.println(" selectByCompanyName added to ArrayList =" +
  409.                          studentID);
  410.     }
  411.     pstmt.close();
  412.     return aList;
  413.   }
  414.   public void getRegisteredClasses() {
  415.     System.out.println(
  416.         "*** In StudentEJB -- getRegisteredClasses() called *****");
  417.   }
  418.   public void addASchedule(String scheduleID) throws RosterDAOException {
  419.     System.out.println("*** In StudentEJB -- addASchedule() called *****");
  420.     try {
  421.       //insert studentID and scheduleID
  422.       rosterDAO.insert(scheduleID, studentID);
  423.     }
  424.     catch (RosterDAOException re) {
  425.       System.out.println(" StudentEJB - addASchedule() error =" + re.getMessage());
  426.     }
  427.     catch (Exception e) {
  428.       System.out.println(" StudentEJB - addASchedule() error =" + e.getMessage());
  429.     }
  430.   }
  431.   public void deleteASchedule(String scheduleID) throws RosterDAOException {
  432.     System.out.println("*** In StudentEJB -- deleteASchedule() called *****");
  433.     try {
  434.       //delete  scheduleID
  435.       rosterDAO.delete(scheduleID, studentID);
  436.     }
  437.     catch (RosterDAOException re) {
  438.       System.out.println(" StudentEJB - addASchedule() error =" + re.getMessage());
  439.     }
  440.     catch (Exception e) {
  441.       System.out.println(" StudentEJB - addASchedule() error =" + e.getMessage());
  442.     }
  443.   }
  444.   public Vector getScheduleList() throws RosterDAOException {
  445.     System.out.println("*** In StudentEJB -- getScheduleList() called *****");
  446.     Vector classList = new Vector(20);
  447.     try {
  448.       //get list of scheduleID
  449.       classList = rosterDAO.getClassList(studentID);
  450.     }
  451.     catch (RosterDAOException re) {
  452.       System.out.println(" StudentEJB - addASchedule() error =" + re.getMessage());
  453.     }
  454.     catch (Exception e) {
  455.       System.out.println(" StudentEJB - addASchedule() error =" + e.getMessage());
  456.     }
  457.     return classList;
  458.   }
  459. }