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}