KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > teamkonzept > db > TKDBInterface


1 /*
2  * $Header: /cvsroot/webman-cms/source/webman/com/teamkonzept/db/TKDBInterface.java,v 1.11 2001/08/21 17:44:53 alex Exp $
3  *
4  */

5 package com.teamkonzept.db;
6
7 import java.sql.*;
8
9 import com.teamkonzept.lib.*;
10 import org.apache.log4j.Category;
11
12 /**
13     Implementiert ein einheitliches Interface, mit dem Objekte, die von der Klasse
14     TKDBData abgeleitet sind in einer Datenbank verwaltet werden koennen.
15
16     Die Aufgabenverteilung ist sehr einfach
17     <UL>
18     <LI> Dem Konstruktor eines Interface-Objekts werden die Queries genannt, mit denen
19     das Objekt in der Datenbank manipuliert werden soll.
20     <LI> Die Bearbeitungsmethoden der Interface-Klasse bekommen das zu bearbeitende TKDBData-Objekt uebergeben.
21         <UL>
22         <LI> Sie w‰hlen die korrekte Query aus und veranlassen dann das TKDBData-Objekt die fuer die Query
23             benoetigten Parameter einzusetzen.
24         <LI> Dann wird die Query ausgefuehrt und ggf. das TKDBData-Objekt aufgefordert, das ResultSet
25             auszulesen.
26         </UL>
27     </UL>
28
29     Die Idee der Interface-Klassen ist es, fuer jedes Objekt, dass ueber ein Interface verwaltet
30     werden soll, eine Interface-Klasse abzuleiten, die ein statisches Objekt von sich selbst enthaelt
31     und dann statische Methoden zum Ausfuehren der Bearbeitungsmethoden zur Verfuegung stellt.
32
33     @see TKDBData
34     @see TKQuery
35  * @author $Author: alex $
36  * @version $Revision: 1.11 $
37 */

38 public class TKDBInterface
39 {
40     private static Category cat = Category.getInstance(TKDBInterface.class);
41     
42     Class JavaDoc newPrimQuery;
43     Class JavaDoc updatePrimQuery;
44     Class JavaDoc getPrimQuery;
45     Class JavaDoc delPrimQuery;
46
47
48     public TKDBInterface(
49         Class JavaDoc newPrimQuery, Class JavaDoc updatePrimQuery,
50         Class JavaDoc getPrimQuery, Class JavaDoc delPrimQuery)
51     {
52         this.newPrimQuery = newPrimQuery;
53         this.updatePrimQuery = updatePrimQuery;
54         this.getPrimQuery = getPrimQuery;
55         this.delPrimQuery = delPrimQuery;
56     }
57
58     public void updateEntry (TKDBData dbData) throws SQLException {
59
60         if ( updatePrimQuery == null ) return; // Ist OK !!! (singh)
61

62         TKQuery query = TKDBManager.newQuery(updatePrimQuery);
63
64         dbData.insertIntoQuery (query);
65         query.execute();
66         query.close();
67
68     }
69
70     public void delEntry (TKDBData dbData) throws SQLException {
71
72         if ( delPrimQuery == null ) {
73             cat.debug("TKDBInterface delPrimQuery is null! " );
74             return;
75         }
76
77         TKQuery query = TKDBManager.newQuery(delPrimQuery);
78
79         dbData.insertPrimaryIntoQuery (query);
80         query.execute();
81         query.close();
82
83     }
84
85     public void getEntry(TKDBData dbData) throws SQLException {
86
87         if ( getPrimQuery == null ) {
88             cat.debug("TKDBInterface getPrimQuery is null! " );
89             return;
90         }
91
92         TKQuery query = TKDBManager.newQuery(getPrimQuery);
93
94         dbData.insertPrimaryIntoQuery (query);
95
96         query.execute();
97         ResultSet rs = query.fetchResultSet();
98
99         if (rs.next()) dbData.fill(rs);
100         else cat.debug("TKDBInterface.getEntry(): no matching DB-Entry found! ");
101
102         query.close();
103     }
104
105     public void newEntry(TKDBData dbData) throws SQLException {
106
107         if ( newPrimQuery == null ) {
108             cat.debug("TKDBInterface newPrimQuery is null! " );
109             return;
110         }
111
112         TKQuery query = TKDBManager.newQuery(newPrimQuery);
113
114         dbData.insertInitialIntoQuery (query);
115
116         query.execute();
117         ResultSet rs = query.fetchResultSet();
118
119         if ((rs == null) || (!rs.next()))
120             throw new TKSQLError("Could not create New Entry for TKDBData" + dbData); // %%change
121
else dbData.fill(rs);
122
123         query.close();
124     }
125 }
126
127
Popular Tags