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

Java编程

开发平台:

Java

  1. package bmpsample;
  2. //package j2eebootcamp.developingEJB.chapter9.student;
  3. import java.io.*;
  4. import javax.sql.DataSource;
  5. import java.sql.SQLException;
  6. import java.sql.ResultSet;
  7. import java.sql.Connection;
  8. import java.sql.PreparedStatement;
  9. import java.sql.*;
  10. import javax.naming.InitialContext;
  11. import javax.naming.NamingException;
  12. import javax.naming.Context;
  13. import java.util.Calendar;
  14. // Implementation of Data Access Object pattern
  15. public class StudentDAO {
  16.   //private Connection connection = null;
  17.   //private DataSource dataSource = null;
  18.   public StudentDAO() throws StudentDAOException {
  19.     System.out.println("--->>> StudentDAO  - StudenDAO() ***** ");
  20.     try {
  21.       System.out.println(
  22.           "n====== in StudentDAO -- StudentDAO() before initialcontext =====");
  23.       InitialContext ictx = new InitialContext();
  24.       System.out.println(
  25.           "n********* in StudentDAO -- StudentDAO() after initialcontext *****");
  26.       //dataSource = (DataSource) ictx.lookup("java:comp/env/jdbc/JCampDS");
  27.       Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
  28.       System.out.println("StudentDAO jcampDataSource lookup OK!");
  29.     }
  30.     catch (Exception ne) {
  31.       throw new StudentDAOException(
  32.           "NamingException while looking up datasource connection =" +
  33.           ne.getMessage());
  34.     }
  35.   }
  36.   public Connection getConnection() throws StudentDAOException {
  37.     System.out.println("n===== StudentDAO  - getConnection() ********");
  38.     Connection connection = null;
  39.     try {
  40. //      connection = dataSource.getConnection();
  41.       connection = DriverManager.getConnection(
  42.           "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=RegSystem;User=sa;Password=sa");
  43.     }
  44.     catch (SQLException se) {
  45.       String msg = se.getMessage();
  46.       throw new StudentDAOException(
  47.           " SQL exception while attempting to OPEN connection =" + msg);
  48.     }
  49.     return connection;
  50.   }
  51.   public void closeConnection(Connection connection) throws StudentDAOException {
  52.     System.out.println("n===== StudentDAO  - closeConnection() ********");
  53.     try {
  54.       if (connection != null && !connection.isClosed()) {
  55.         connection.close();
  56.       }
  57.     }
  58.     catch (SQLException se) {
  59.       String msg = se.getMessage();
  60.       throw new StudentDAOException(
  61.           " SQL exception while attempting to close connection =" + msg);
  62.     }
  63.   }
  64.   public void closeResultSet(ResultSet rset) throws StudentDAOException {
  65.     System.out.println("n==== StudentDAO  -closeResultSet() ********");
  66.     try {
  67.       if (rset != null) {
  68.         rset.close();
  69.       }
  70.     }
  71.     catch (SQLException se) {
  72.       throw new StudentDAOException(
  73.           " SQL exception while attempting to close result set =" +
  74.           se.getMessage());
  75.     }
  76.   }
  77.   public void closeStatement(PreparedStatement pstmt) throws
  78.       StudentDAOException {
  79.     System.out.println("n ==== StudentDAO  - closeStatement() ********");
  80.     try {
  81.       if (pstmt != null) {
  82.         pstmt.close();
  83.       }
  84.     }
  85.     catch (SQLException se) {
  86.       throw new StudentDAOException(
  87.           " SQL exception while attempting to close statement =" +
  88.           se.getMessage());
  89.     }
  90.   }
  91.   public void insertStudent(String pKey, String password, String firstName,
  92.                             String lastName, String email, String phone,
  93.                             String companyName) throws StudentDAOException {
  94.     System.out.println("----->>> StudentDAO  - insertStudent() ");
  95.     PreparedStatement pstmt = null;
  96.     Connection conn = this.getConnection();
  97.     Calendar calendar = Calendar.getInstance();
  98.     java.util.Date theTime = calendar.getTime();
  99.     java.sql.Date now = new java.sql.Date(theTime.getTime());
  100.     try {
  101.       pstmt = conn.prepareStatement("Insert into StudentEJBTable(id, password, firstName, lastName, email, phone, companyName, createDate) values(?,?,?,?,?,?,?,?)");
  102.       pstmt.setString(1, pKey);
  103.       pstmt.setString(2, password);
  104.       pstmt.setString(3, firstName);
  105.       pstmt.setString(4, lastName);
  106.       pstmt.setString(5, email);
  107.       pstmt.setString(6, phone);
  108.       pstmt.setString(7, companyName);
  109.       pstmt.setDate(8, now);
  110.       System.out.println(" StudentDAO  prepared statment OK");
  111.       pstmt.executeUpdate();
  112.       System.out.println(" StudentDAO Student inserted");
  113.     }
  114.     catch (SQLException se) {
  115.       throw new StudentDAOException(" Query exception " + se.getMessage());
  116.     }
  117.     finally {
  118.       closeStatement(pstmt);
  119.       closeConnection(conn);
  120.     }
  121.     System.out.println("StudentDAO  - inserted successfully");
  122.   }
  123.   public void updateStudent(String pKey, String password, String firstName,
  124.                             String lastName, String email, String phone,
  125.                             String companyName) throws StudentDAOException {
  126.     System.out.println("--->>> StudentDAO  - updateStudent() key =" + pKey +
  127.                        ", password=" + password + ", last=" + lastName +
  128.                        ", first=" + firstName + ", email=" + email + ", phone=" +
  129.                        phone + ", company=" + companyName);
  130.     PreparedStatement pstmt = null;
  131.     Connection conn = this.getConnection();
  132.     try {
  133.       String updateStatement = "UPDATE StudentEJBTable set password = ?, firstName = ?, lastName = ?, email = ?, phone = ?, companyName = ? WHERE id = ?";
  134.       System.out.println("StudentDAO updateStatement ");
  135.       pstmt = conn.prepareStatement(updateStatement);
  136.       pstmt.setString(1, password);
  137.       pstmt.setString(2, firstName);
  138.       pstmt.setString(3, lastName);
  139.       pstmt.setString(4, email);
  140.       pstmt.setString(5, phone);
  141.       pstmt.setString(6, companyName);
  142.       pstmt.setString(7, pKey);
  143.       int rowCount = pstmt.executeUpdate();
  144.       if (rowCount == 0) {
  145.         throw new StudentDAOException("Update Failed for Student primary key =" +
  146.                                       pKey);
  147.       }
  148.     }
  149.     catch (SQLException se) {
  150.       String msg = se.getMessage();
  151.       throw new StudentDAOException(
  152.           " SQL exception while attempting to UPDATE =" + msg);
  153.     }
  154.     finally {
  155.       closeStatement(pstmt);
  156.       closeConnection(conn);
  157.     }
  158.   }
  159.   public void deleteStudent(String pKey) throws StudentDAOException {
  160.     System.out.println("---->>> StudentDAO  - delete() pkey =" + pKey);
  161.     PreparedStatement pstmt = null;
  162.     Connection conn = this.getConnection();
  163.     try {
  164.       String updateStatement = "DELETE FROM StudentEJBTable WHERE id = ?";
  165.       pstmt = conn.prepareStatement(updateStatement);
  166.       pstmt.setString(1, pKey);
  167.       int rowCount = pstmt.executeUpdate();
  168.       if (rowCount == 0) {
  169.         throw new StudentDAOException("DELETE Failed for Student id =" + pKey);
  170.       }
  171.     }
  172.     catch (SQLException se) {
  173.       throw new StudentDAOException(
  174.           " SQL exception while attempting to DELETE =" + se.getMessage());
  175.     }
  176.     finally {
  177.       closeStatement(pstmt);
  178.       closeConnection(conn);
  179.     }
  180.   }
  181.   public ResultSet selectByPrimaryKey(String pKey) throws StudentDAOException {
  182.     System.out.println("---->>> StudentDAO  - selectByPrimaryKey pkey =" + pKey);
  183.     PreparedStatement pstmt = null;
  184.     Connection conn = this.getConnection();
  185.     ResultSet rs = null;
  186.     System.out.println(
  187.         "nStudentDAO  - in selectPrimaryKey() before select statement ********");
  188.     try {
  189.       String selectStatement = "SELECT * from StudentEJBTable where ID = ?";
  190.       pstmt = conn.prepareStatement(selectStatement);
  191.       pstmt.setString(1, pKey);
  192.       rs = pstmt.executeQuery();
  193.       System.out.println(
  194.           "nStudentDAO  - in selectPrimaryKey() successful with resultset size =" +
  195.           rs.getFetchSize());
  196.     }
  197.     catch (SQLException se) {
  198.       String msg = se.getMessage();
  199.       throw new StudentDAOException(
  200.           " SQL exception while attempting to SELECT By Primary Key =" + msg);
  201.     }
  202.     finally {
  203.       closeStatement(pstmt);
  204.       closeConnection(conn);
  205.     }
  206.     return rs;
  207.   }
  208. } //;-)