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

Java编程

开发平台:

Java

  1. package sfsbsample;
  2. /*
  3.  *
  4.  * Copyright 2001, 2002 JavaCamp.com, Inc. All Rights Reserved.
  5.  *
  6.  * Grant the rights to the purchaser of the book to use the source code.
  7.  * .
  8.  * @author Pravin Tulachan
  9.  * @version 1.0
  10.  * @see
  11.  * @since
  12.  *
  13.  */
  14. //package j2eebootcamp.developingEJB.common;
  15. import java.util.Vector;
  16. import javax.sql.DataSource;
  17. import java.sql.SQLException;
  18. import java.sql.ResultSet;
  19. import java.sql.Connection;
  20. import java.sql.Statement;
  21. import java.sql.Date;
  22. import java.sql.*;
  23. import javax.naming.InitialContext;
  24. import javax.naming.NamingException;
  25. import javax.naming.Context;
  26. //import j2eebootcamp.developingEJB.common.ScheduleVO;
  27. /**
  28.  ** <code>ScheduleDAO</code> is a user-defined class.
  29.  */
  30. public class ScheduleDAO {
  31.   //private Connection connection = null;
  32.   //private DataSource dataSource = null;
  33.   public ScheduleDAO() throws ScheduleDAOException {
  34.     try {
  35. //      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
  36.         Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
  37.       // need to look up the data source, so it can access the database
  38.       /*InitialContext ictx = new InitialContext();
  39.            dataSource = (DataSource) ictx.lookup("java:comp/env/jdbc/JCampDS");
  40.            System.out.println("ScheduleDAO jcampDataSource lookup OK!");*/
  41.     }
  42.     catch (Exception ne) {
  43.       throw new ScheduleDAOException(
  44.           "NamingException while looking up datasource connection =" +
  45.           ne.getMessage());
  46.     }
  47.   }
  48.   public Connection getConnection() throws ScheduleDAOException {
  49.     Connection connection = null;
  50.     try {
  51.       //open a connection to the datasource
  52.       //connection = dataSource.getConnection();
  53. //      connection = DriverManager.getConnection("jdbc:odbc:CWJ", "sa", "sa");
  54.       connection = DriverManager.getConnection(
  55.           "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=RegSystem;User=sa;Password=sa");
  56.     }
  57.     catch (SQLException se) {
  58.       throw new ScheduleDAOException(
  59.           " --- SQL exception while attempting to open connection =" +
  60.           se.getMessage());
  61.     }
  62.     return connection;
  63.   }
  64.   public void closeConnection(Connection connection) throws
  65.       ScheduleDAOException {
  66.     try {
  67.       //close the connction to the datasource.
  68.       if (connection != null && !connection.isClosed()) {
  69.         connection.close();
  70.       }
  71.     }
  72.     catch (SQLException se) {
  73.       throw new ScheduleDAOException(
  74.           " --- SQL exception while attempting to close connection =" +
  75.           se.getMessage());
  76.     }
  77.   }
  78.   public void closeResultSet(ResultSet rset) throws ScheduleDAOException {
  79.     try {
  80.       //a good practise - close resouces you don't need. close reasultset
  81.       if (rset != null) {
  82.         rset.close();
  83.       }
  84.     }
  85.     catch (SQLException se) {
  86.       throw new ScheduleDAOException(
  87.           " --- SQL exception while attempting to close result set =" +
  88.           se.getMessage());
  89.     }
  90.   }
  91.   public void closeStatement(Statement stmt) throws ScheduleDAOException {
  92.     try {
  93.       //a good practise - close resouces you don't need. close statement
  94.       if (stmt != null) {
  95.         stmt.close();
  96.       }
  97.     }
  98.     catch (SQLException se) {
  99.       throw new ScheduleDAOException(
  100.           " --- SQL exception while attempting to close statement =" +
  101.           se.getMessage());
  102.     }
  103.   }
  104.   public Vector searchByCourseTitle(String courseTitle) throws
  105.       ScheduleDAOException {
  106.     Statement stmt = null;
  107.     ResultSet rset = null;
  108.     //We'll use the Vector to hold and pass the fields from the result set.
  109.     Vector scheduleList = new Vector(20);
  110.     // get the connection to the database
  111.     Connection conn = this.getConnection();
  112.     //create a query statement
  113.     String queryString = "SELECT sid, courseid, locationid, city, state, country, startdate, enddate, status, title, instructorID,  price, maxenrollment, currentenrollment FROM ScheduleEJBTable s, CourseEJBTable c,  LocationEJBTable l  where courseid = c.id AND locationid = l.id AND  title LIKE '%" +
  114.         courseTitle + "%'";
  115.     System.out.println("   --- ScheduleDAO  - searchByCourseTitle ");
  116.     System.out.println("   --- queryString = " + queryString);
  117.     try {
  118.       stmt = conn.createStatement();
  119.       System.out.println(" stmt creation OK");
  120.       rset = stmt.executeQuery(queryString);
  121.       System.out.println("  --- SchedeulDAO -- got the resulset rset ");
  122.       while (rset.next()) {
  123.         ScheduleVO schedule = new ScheduleVO(
  124.             rset.getString("sid"), rset.getString("courseid"),
  125.             rset.getString("locationid"),
  126.             rset.getString("city"), rset.getString("state"),
  127.             rset.getString("country"),
  128.             rset.getDate("startdate"), rset.getDate("enddate"),
  129.             rset.getString("status"), rset.getString("title"),
  130.             rset.getFloat("price"), rset.getInt("maxenrollment"),
  131.             rset.getInt("currentenrollment")
  132.             );
  133.         System.out.println(
  134.             "   --- ScheduleDAO - created schedule item, before adding to a vector");
  135.         scheduleList.addElement(schedule);
  136.       }
  137.     }
  138.     catch (SQLException se) {
  139.       throw new ScheduleDAOException(" Query exception " + se.getMessage());
  140.     }
  141.     finally {
  142.       closeResultSet(rset);
  143.       closeStatement(stmt);
  144.       closeConnection(conn);
  145.     }
  146.     System.out.println(
  147.         "   --- ScheduleDAO  - searchByCourseTitle - returning Vector ");
  148.     return scheduleList;
  149.   }
  150.   public ScheduleVO searchByScheduleID(String scheduleID) throws
  151.       ScheduleDAOException {
  152.     Statement stmt = null;
  153.     ResultSet rset = null;
  154.     ScheduleVO schedule = null;
  155.     Connection conn = this.getConnection();
  156.     // create a query statement with scheduleID as the search criteria
  157.     String queryString = "SELECT sid, courseid, locationid, city, state, country, startdate, enddate, status, title, instructorID,  price, maxenrollment, currentenrollment FROM ScheduleEJBTable s, CourseEJBTable c,  LocationEJBTable l  where courseid = c.id AND locationid = l.id AND sid LIKE '%" +
  158.         scheduleID + "%'";
  159.     System.out.println("queryString = " + queryString);
  160.     try {
  161.       stmt = conn.createStatement();
  162.       System.out.println("  --- ScheduleDAO -- stmt creation OK");
  163.       rset = stmt.executeQuery(queryString);
  164.       System.out.println(" got the resulset rset ");
  165.       while (rset.next()) {
  166.         schedule = new ScheduleVO(
  167.             rset.getString("sid"), rset.getString("courseid"),
  168.             rset.getString("locationid"),
  169.             rset.getString("city"), rset.getString("state"),
  170.             rset.getString("country"),
  171.             rset.getDate("startdate"), rset.getDate("enddate"),
  172.             rset.getString("status"), rset.getString("title"),
  173.             rset.getFloat("price"), rset.getInt("maxenrollment"),
  174.             rset.getInt("currentenrollment")
  175.             );
  176.       }
  177.     }
  178.     catch (SQLException se) {
  179.       throw new ScheduleDAOException(" ScheduleDAO Query exception " +
  180.                                      se.getMessage());
  181.     }
  182.     finally {
  183.       closeResultSet(rset);
  184.       closeStatement(stmt);
  185.       closeConnection(conn);
  186.     }
  187.     System.out.println(
  188.         "  --- ScheduleDAO  - searchByCourseID - returning schedule ");
  189.     if (schedule == null) {
  190.       System.out.println(" in ScheduleDAO --  returning schedule is null");
  191.     }
  192.     return schedule;
  193.   }
  194. }