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

Java编程

开发平台:

Java

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