Yurttas/PL/OOL/Java/F/08/02/02/00/PhoneBookServant00.java

  1import PhoneBook00.*;
  2
  3import java.io.*;
  4
  5import java.sql.*;
  6
  7public class PhoneBookServant00 extends PhoneBookPOA {
  8
  9  String driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
 10  Connection con;
 11
 12  public PhoneBookServant00(String username,
 13                            String password,
 14                            String connectionString) {
 15    try {
 16      Class.forName(driver);
 17      con = DriverManager.getConnection(connectionString, username, password);
 18    }
 19    catch(ClassNotFoundException c) {
 20      System.out.println("JDBC drivers not in the classpath\n" + c);
 21      System.exit(0);
 22    }
 23    catch(SQLException sqlException) {
 24      System.out.println("Unable to connect to the database \n" + sqlException);
 25      System.exit(0);
 26    }
 27  }
 28
 29  public PhoneBook00.PhoneBookEntry lookUpName(String number) {
 30    String name = "";
 31
 32    try {
 33      Statement stmt = con.createStatement();
 34      ResultSet rs = stmt.executeQuery("SELECT Name FROM PhoneBook WHERE Number='"+number+"'");
 35      if(rs.next())
 36        name = rs.getString(1).trim();
 37    }
 38    catch(SQLException sqlException) {
 39      System.out.println("Error looking up name\n");
 40    }
 41    return new PhoneBook00.PhoneBookEntry(name,number);
 42  }
 43
 44  public PhoneBook00.PhoneBookEntry lookUpNumber(String name) {
 45    String number = "";
 46
 47    try {
 48      Statement stmt = con.createStatement();
 49      ResultSet rs = stmt.executeQuery("SELECT Number FROM PhoneBook WHERE Name='"+name+"'");
 50      if(rs.next())
 51        number = rs.getString(1).trim();
 52    }
 53    catch(SQLException sqlException) {
 54      System.out.println("Error looking up number\n" + sqlException);
 55    }
 56
 57    return new PhoneBook00.PhoneBookEntry(name,number);
 58  }
 59
 60  public boolean insertEntry(PhoneBook00.PhoneBookEntry entry) {
 61    if(entry.name==null||entry.phoneNumber==null)
 62      return false;
 63
 64    try {
 65      Statement stmt = con.createStatement();
 66      if((stmt.executeUpdate("INSERT INTO PhoneBook Values(" + entry.name + ","+ entry.phoneNumber + ")"))!=1)
 67        return false;
 68    }
 69    catch(SQLException sqlException) {
 70      System.out.println("Error Inserting  number\n");
 71      return false;
 72    }
 73
 74    return true;
 75  }
 76
 77  public boolean deleteEntry(PhoneBook00.PhoneBookEntry entry) {
 78    if(entry.name==null||entry.phoneNumber==null)
 79      return false;
 80    try {
 81      Statement stmt = con.createStatement();
 82      if((stmt.executeUpdate("DELETE FROM PhoneBook WHERE name ='" + entry.name + "'"))!= 1)
 83        return false;
 84    }
 85    catch(SQLException sqlException) {
 86      System.out.println("Error Deleting number\n");
 87    }
 88    return true;
 89  }
 90
 91  public PhoneBook00.PhoneBookEntry[] list() {
 92    String number;
 93    String name;
 94
 95    int count=0;
 96
 97    PhoneBook00.PhoneBookEntry[] list = null;
 98
 99    try {
100      Statement stmt = con.createStatement();
101      ResultSet rs = stmt.executeQuery("SELECT Name,Number FROM PhoneBook ");
102      while(rs.next()) {
103        list[count].name = rs.getString(1).trim();
104        list[count].phoneNumber = rs.getString(2).trim();
105        count++;
106      }
107    }
108    catch(SQLException sqlException) {
109      System.out.println("Error retrieving list\n");
110      return null;
111    }
112
113    return list;
114  }
115
116}