KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > juddi > datastore > jdbc > PhoneTable


1 /*
2  * Copyright 2001-2004 The Apache Software Foundation.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16 package org.apache.juddi.datastore.jdbc;
17
18 import java.sql.Connection JavaDoc;
19 import java.sql.PreparedStatement JavaDoc;
20 import java.sql.ResultSet JavaDoc;
21 import java.util.Vector JavaDoc;
22
23 import org.apache.commons.logging.Log;
24 import org.apache.commons.logging.LogFactory;
25 import org.apache.juddi.datatype.Phone;
26
27 /**
28  * @author Steve Viens (sviens@apache.org)
29  */

30 class PhoneTable
31 {
32   // private reference to the jUDDI logger
33
private static Log log = LogFactory.getLog(PhoneTable.class);
34
35   static String JavaDoc insertSQL = null;
36   static String JavaDoc selectSQL = null;
37   static String JavaDoc deleteSQL = null;
38
39   static {
40     // buffer used to build SQL statements
41
StringBuffer JavaDoc sql = null;
42
43     // build insertSQL
44
sql = new StringBuffer JavaDoc(150);
45     sql.append("INSERT INTO PHONE (");
46     sql.append("BUSINESS_KEY,");
47     sql.append("CONTACT_ID,");
48     sql.append("PHONE_ID,");
49     sql.append("USE_TYPE,");
50     sql.append("PHONE_NUMBER) ");
51     sql.append("VALUES (?,?,?,?,?)");
52     insertSQL = sql.toString();
53
54     // build selectSQL
55
sql = new StringBuffer JavaDoc(200);
56     sql.append("SELECT ");
57     sql.append("USE_TYPE,");
58     sql.append("PHONE_NUMBER, ");
59     sql.append("PHONE_ID ");
60     sql.append("FROM PHONE ");
61     sql.append("WHERE BUSINESS_KEY=? ");
62     sql.append("AND CONTACT_ID=? ");
63     sql.append("ORDER BY PHONE_ID");
64     selectSQL = sql.toString();
65
66     // build deleteSQL
67
sql = new StringBuffer JavaDoc(100);
68     sql.append("DELETE FROM PHONE ");
69     sql.append("WHERE BUSINESS_KEY=?");
70     deleteSQL = sql.toString();
71   }
72
73   /**
74    * Insert new row into the PHONE table.
75    *
76    * @param businessKey String to the BusinessEntity object that owns the Contact to be inserted
77    * @param contactID The unique ID generated when saving the parent Contact instance.
78    * @param phoneList Vector of Phone objects holding values to be inserted
79    * @param connection JDBC connection
80    * @throws java.sql.SQLException
81    */

82   public static void insert(
83     String JavaDoc businessKey,
84     int contactID,
85     Vector JavaDoc phoneList,
86     Connection JavaDoc connection)
87     throws java.sql.SQLException JavaDoc
88   {
89     if ((phoneList == null) || (phoneList.size() == 0))
90       return; // everything is valid but no elements to insert
91

92     PreparedStatement JavaDoc statement = null;
93
94     try
95     {
96       statement = connection.prepareStatement(insertSQL);
97       statement.setString(1, businessKey.toString());
98       statement.setInt(2, contactID);
99
100       int listSize = phoneList.size();
101       for (int phoneID = 0; phoneID < listSize; phoneID++)
102       {
103         Phone phone = (Phone) phoneList.elementAt(phoneID);
104
105         statement.setInt(3, phoneID);
106         statement.setString(4, phone.getUseType());
107         statement.setString(5, phone.getValue());
108
109         log.debug(
110           "insert into PHONE table:\n\n\t"
111             + insertSQL
112             + "\n\t BUSINESS_KEY="
113             + businessKey.toString()
114             + "\n\t CONTACT_ID="
115             + contactID
116             + "\n\t PHONE_ID="
117             + phoneID
118             + "\n\t USE_TYPE="
119             + phone.getUseType()
120             + "\n\t PHONE_NUMBER="
121             + phone.getValue()
122             + "\n");
123
124         statement.executeUpdate();
125       }
126     }
127     finally
128     {
129       try
130       {
131         statement.close();
132       }
133       catch (Exception JavaDoc e)
134       { /* ignored */
135       }
136     }
137   }
138
139   /**
140    * Select all rows from the CONTACT table for a given BusinessKey.
141    *
142    * @param businessKey String
143    * @param contactID Unique ID representing the parent Contact instance
144    * @param connection JDBC connection
145    * @throws java.sql.SQLException
146    */

147   public static Vector JavaDoc select(
148     String JavaDoc businessKey,
149     int contactID,
150     Connection JavaDoc connection)
151     throws java.sql.SQLException JavaDoc
152   {
153     Vector JavaDoc phoneList = new Vector JavaDoc();
154     PreparedStatement JavaDoc statement = null;
155     ResultSet JavaDoc resultSet = null;
156
157     try
158     {
159       // create a statement to query with
160
statement = connection.prepareStatement(selectSQL);
161       statement.setString(1, businessKey.toString());
162       statement.setInt(2, contactID);
163
164       log.debug(
165         "select from PHONE table:\n\n\t"
166           + selectSQL
167           + "\n\t BUSINESS_KEY="
168           + businessKey.toString()
169           + "\n\t CONTACT_ID="
170           + contactID
171           + "\n");
172
173       // execute the statement
174
resultSet = statement.executeQuery();
175       while (resultSet.next())
176       {
177         Phone phone = new Phone();
178         phone.setUseType(resultSet.getString(1));//("USE_TYPE"));
179
phone.setValue(resultSet.getString(2));//("PHONE_NUMBER"));
180
phoneList.add(phone);
181       }
182
183       return phoneList;
184     }
185     finally
186     {
187       try
188       {
189         resultSet.close();
190         statement.close();
191       }
192       catch (Exception JavaDoc e)
193       { /* ignored */
194       }
195     }
196   }
197
198   /**
199    * Delete multiple rows from the PHONE table that are assigned to the
200    * BusinessKey specified.
201    *
202    * @param businessKey String
203    * @param connection JDBC connection
204    * @throws java.sql.SQLException
205    */

206   public static void delete(String JavaDoc businessKey, Connection JavaDoc connection)
207     throws java.sql.SQLException JavaDoc
208   {
209     PreparedStatement JavaDoc statement = null;
210
211     try
212     {
213       // prepare the delete
214
statement = connection.prepareStatement(deleteSQL);
215       statement.setString(1, businessKey.toString());
216
217       log.debug(
218         "delete from the PHONE table:\n\n\t"
219           + deleteSQL
220           + "\n\t BUSINESS_KEY="
221           + businessKey.toString()
222           + "\n");
223
224       // execute
225
statement.executeUpdate();
226     }
227     finally
228     {
229       try
230       {
231         statement.close();
232       }
233       catch (Exception JavaDoc e)
234       { /* ignored */
235       }
236     }
237   }
238 }
239
Popular Tags