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