ScheduleDAO.java~1~
上传用户: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.       // need to look up the data source, so it can access the database
  37.       /*InitialContext ictx = new InitialContext();
  38.            dataSource = (DataSource) ictx.lookup("java:comp/env/jdbc/JCampDS");
  39.            System.out.println("ScheduleDAO jcampDataSource lookup OK!");*/
  40.     }
  41.     catch (Exception ne) {
  42.       throw new ScheduleDAOException(
  43.           "NamingException while looking up datasource connection =" +
  44.           ne.getMessage());
  45.     }
  46.   }
  47.   public Connection getConnection() throws ScheduleDAOException {
  48.     Connection connection = null;
  49.     try {
  50.       //open a connection to the datasource
  51.       //connection = dataSource.getConnection();
  52.       connection = DriverManager.getConnection("jdbc:odbc:CWJ", "sa", "sa");
  53.     }
  54.     catch (SQLException se) {
  55.       throw new ScheduleDAOException(
  56.           " --- SQL exception while attempting to open connection =" +
  57.           se.getMessage());
  58.     }
  59.     return connection;
  60.   }
  61.   public void closeConnection(Connection connection) throws
  62.       ScheduleDAOException {
  63.     try {
  64.       //close the connction to the datasource.
  65.       if (connection != null && !connection.isClosed()) {
  66.         connection.close();
  67.       }
  68.     }
  69.     catch (SQLException se) {
  70.       throw new ScheduleDAOException(
  71.           " --- SQL exception while attempting to close connection =" +
  72.           se.getMessage());
  73.     }
  74.   }
  75.   public void closeResultSet(ResultSet rset) throws ScheduleDAOException {
  76.     try {
  77.       //a good practise - close resouces you don't need. close reasultset
  78.       if (rset != null) {
  79.         rset.close();
  80.       }
  81.     }
  82.     catch (SQLException se) {
  83.       throw new ScheduleDAOException(
  84.           " --- SQL exception while attempting to close result set =" +
  85.           se.getMessage());
  86.     }
  87.   }
  88.   public void closeStatement(Statement stmt) throws ScheduleDAOException {
  89.     try {
  90.       //a good practise - close resouces you don't need. close statement
  91.       if (stmt != null) {
  92.         stmt.close();
  93.       }
  94.     }
  95.     catch (SQLException se) {
  96.       throw new ScheduleDAOException(
  97.           " --- SQL exception while attempting to close statement =" +
  98.           se.getMessage());
  99.     }
  100.   }
  101.   public Vector searchByCourseTitle(String courseTitle) throws
  102.       ScheduleDAOException {
  103.     Statement stmt = null;
  104.     ResultSet rset = null;
  105.     //We'll use the Vector to hold and pass the fields from the result set.
  106.     Vector scheduleList = new Vector(20);
  107.     // get the connection to the database
  108.     Connection conn = this.getConnection();
  109.     //create a query statement
  110.     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 '%" +
  111.         courseTitle + "%'";
  112.     System.out.println("   --- ScheduleDAO  - searchByCourseTitle ");
  113.     System.out.println("   --- queryString = " + queryString);
  114.     try {
  115.       stmt = conn.createStatement();
  116.       System.out.println(" stmt creation OK");
  117.       rset = stmt.executeQuery(queryString);
  118.       System.out.println("  --- SchedeulDAO -- got the resulset rset ");
  119.       while (rset.next()) {
  120.         ScheduleVO schedule = new ScheduleVO(
  121.             rset.getString("sid"), rset.getString("courseid"),
  122.             rset.getString("locationid"),
  123.             rset.getString("city"), rset.getString("state"),
  124.             rset.getString("country"),
  125.             rset.getDate("startdate"), rset.getDate("enddate"),
  126.             rset.getString("status"), rset.getString("title"),
  127.             rset.getFloat("price"), rset.getInt("maxenrollment"),
  128.             rset.getInt("currentenrollment")
  129.             );
  130.         System.out.println(
  131.             "   --- ScheduleDAO - created schedule item, before adding to a vector");
  132.         scheduleList.addElement(schedule);
  133.       }
  134.     }
  135.     catch (SQLException se) {
  136.       throw new ScheduleDAOException(" Query exception " + se.getMessage());
  137.     }
  138.     finally {
  139.       closeResultSet(rset);
  140.       closeStatement(stmt);
  141.       closeConnection(conn);
  142.     }
  143.     System.out.println(
  144.         "   --- ScheduleDAO  - searchByCourseTitle - returning Vector ");
  145.     return scheduleList;
  146.   }
  147.   public ScheduleVO searchByScheduleID(String scheduleID) throws
  148.       ScheduleDAOException {
  149.     Statement stmt = null;
  150.     ResultSet rset = null;
  151.     ScheduleVO schedule = null;
  152.     Connection conn = this.getConnection();
  153.     // create a query statement with scheduleID as the search criteria
  154.     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 '%" +
  155.         scheduleID + "%'";
  156.     System.out.println("queryString = " + queryString);
  157.     try {
  158.       stmt = conn.createStatement();
  159.       System.out.println("  --- ScheduleDAO -- stmt creation OK");
  160.       rset = stmt.executeQuery(queryString);
  161.       System.out.println(" got the resulset rset ");
  162.       while (rset.next()) {
  163.         schedule = new ScheduleVO(
  164.             rset.getString("sid"), rset.getString("courseid"),
  165.             rset.getString("locationid"),
  166.             rset.getString("city"), rset.getString("state"),
  167.             rset.getString("country"),
  168.             rset.getDate("startdate"), rset.getDate("enddate"),
  169.             rset.getString("status"), rset.getString("title"),
  170.             rset.getFloat("price"), rset.getInt("maxenrollment"),
  171.             rset.getInt("currentenrollment")
  172.             );
  173.       }
  174.     }
  175.     catch (SQLException se) {
  176.       throw new ScheduleDAOException(" ScheduleDAO Query exception " +
  177.                                      se.getMessage());
  178.     }
  179.     finally {
  180.       closeResultSet(rset);
  181.       closeStatement(stmt);
  182.       closeConnection(conn);
  183.     }
  184.     System.out.println(
  185.         "  --- ScheduleDAO  - searchByCourseID - returning schedule ");
  186.     if (schedule == null) {
  187.       System.out.println(" in ScheduleDAO --  returning schedule is null");
  188.     }
  189.     return schedule;
  190.   }
  191. }