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

Java编程

开发平台:

Java

  1. package bmpsample;
  2. //package j2eebootcamp.developingEJB.chapter9.roster;
  3. import java.util.Vector;
  4. import java.lang.reflect.*;
  5. import java.io.*;
  6. import javax.sql.DataSource;
  7. import java.sql.SQLException;
  8. import java.sql.ResultSet;
  9. import java.sql.Connection;
  10. import java.sql.PreparedStatement;
  11. import java.sql.Date;
  12. import java.sql.*;
  13. import javax.naming.InitialContext;
  14. import javax.naming.NamingException;
  15. import javax.naming.Context;
  16. import java.util.Calendar;
  17. //import j2eebootcamp.developingEJB.chapter9.roster.*;
  18. /**
  19.  ** <code>RosterDAO</code> is a user-defined class.
  20.  */
  21. public class RosterDAO {
  22.   //private Connection connection = null;
  23.   //private DataSource dataSource = null;
  24.   public RosterDAO() throws RosterDAOException {
  25.     try {
  26. //           Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
  27.       Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
  28.       /* InitialContext ictx = new InitialContext();
  29.        dataSource = (DataSource) ictx.lookup("java:comp/env/jdbc/JCampDS");
  30.        System.out.println("RosterDAO jcampDataSource lookup OK!");*/
  31.     }
  32.     catch (Exception ne) {
  33.       throw new RosterDAOException(
  34.           "NamingException while looking up datasource connection =" +
  35.           ne.getMessage());
  36.     }
  37.   }
  38.   public Connection getConnection() throws RosterDAOException {
  39.     Connection connection = null;
  40.     try {
  41.       connection = DriverManager.getConnection(
  42.           "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=RegSystem;User=sa;Password=sa");
  43.       //connection = dataSource.getConnection();
  44.     }
  45.     catch (SQLException se) {
  46.       throw new RosterDAOException(
  47.           " SQL exception while attempting to open connection =" +
  48.           se.getMessage());
  49.     }
  50.     return connection;
  51.   }
  52.   public void closeConnection(Connection connection) throws RosterDAOException {
  53.     try {
  54.       if (connection != null && !connection.isClosed()) {
  55.         connection.close();
  56.       }
  57.     }
  58.     catch (SQLException se) {
  59.       throw new RosterDAOException(
  60.           " SQL exception while attempting to close connection =" +
  61.           se.getMessage());
  62.     }
  63.   }
  64.   public void closeResultSet(ResultSet rset) throws RosterDAOException {
  65.     try {
  66.       if (rset != null) {
  67.         rset.close();
  68.       }
  69.     }
  70.     catch (SQLException se) {
  71.       throw new RosterDAOException(
  72.           " SQL exception while attempting to close result set =" +
  73.           se.getMessage());
  74.     }
  75.   }
  76.   public void closeStatement(PreparedStatement pstmt) throws RosterDAOException {
  77.     try {
  78.       if (pstmt != null) {
  79.         pstmt.close();
  80.       }
  81.     }
  82.     catch (SQLException se) {
  83.       throw new RosterDAOException(
  84.           " SQL exception while attempting to close statement =" +
  85.           se.getMessage());
  86.     }
  87.   }
  88.   public void insert(String scheduleID, String studentID) throws
  89.       RosterDAOException {
  90.     PreparedStatement pstmt = null;
  91.     Connection conn = this.getConnection();
  92.     Calendar calendar = Calendar.getInstance();
  93.     java.util.Date theTime = calendar.getTime();
  94.     java.sql.Date now = new java.sql.Date(theTime.getTime());
  95.     try {
  96.       String updateStatement = "INSERT INTO RosterEJBTable (StudentID, ScheduleID, RegistrationDate) VALUES (?, ?, ?)";
  97.       //String updateStatement = "INSERT INTO RosterEJBTable (StudentID, ScheduleID) VALUES (?, ?)";
  98.       pstmt = conn.prepareStatement(updateStatement);
  99.       pstmt.setString(1, studentID);
  100.       pstmt.setString(2, scheduleID);
  101.       pstmt.setDate(3, now);
  102.       int rowCount = pstmt.executeUpdate();
  103.       if (rowCount == 0) {
  104.         throw new RosterDAOException("Update Failed for StudentID =" +
  105.                                      studentID + " with ScheduleID =" +
  106.                                      scheduleID);
  107.       }
  108.       pstmt.close();
  109.     }
  110.     catch (SQLException se) {
  111.       throw new RosterDAOException(
  112.           " SQL exception while attempting to open connection =" +
  113.           se.getMessage());
  114.     }
  115.   }
  116.   public void delete(String scheduleID, String studentID) throws
  117.       RosterDAOException {
  118.     PreparedStatement pstmt = null;
  119.     Connection conn = this.getConnection();
  120.     try {
  121.       String updateStatement =
  122.           "DELETE FROM RosterEJBTable WHERE ScheduleID= ? AND studentID = ?";
  123.       pstmt = conn.prepareStatement(updateStatement);
  124.       pstmt.setString(1, scheduleID);
  125.       pstmt.setString(2, studentID);
  126.       int rowCount = pstmt.executeUpdate();
  127.       if (rowCount == 0) {
  128.         throw new RosterDAOException("DELETE Failed for StudentID =" +
  129.                                      studentID + " with ScheduleID =" +
  130.                                      scheduleID);
  131.       }
  132.       pstmt.close();
  133.     }
  134.     catch (SQLException se) {
  135.       throw new RosterDAOException(
  136.           " SQL exception while attempting to open connection =" +
  137.           se.getMessage());
  138.     }
  139.   }
  140.   public Vector getClassList(String studentID) throws RosterDAOException {
  141.     Vector classList = new Vector(20);
  142.     PreparedStatement pstmt = null;
  143.     Connection conn = this.getConnection();
  144.     ResultSet rset = null;
  145.     try {
  146.       String updateStatement =
  147.           "SELECT ScheduleID FROM RosterEJBTable WHERE studentID= ?";
  148.       pstmt = conn.prepareStatement(updateStatement);
  149.       pstmt.setString(1, studentID);
  150.       rset = pstmt.executeQuery();
  151.       while (rset.next()) {
  152.         classList.addElement(rset.getString("ScheduleID"));
  153.       }
  154.       pstmt.close();
  155.     }
  156.     catch (SQLException se) {
  157.       throw new RosterDAOException(
  158.           " SQL exception while attempting to open connection =" +
  159.           se.getMessage());
  160.     }
  161.     return classList;
  162.   }
  163. } //;-)