KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > teamkonzept > lib > TKDBResultRowHash


1 /*
2  * $Header: /cvsroot/webman-cms/source/webman/com/teamkonzept/lib/TKDBResultRowHash.java,v 1.6 2000/08/18 10:25:38 careck Exp $
3  *
4  */

5 package com.teamkonzept.lib;
6
7 import java.sql.*;
8 import java.util.*;
9
10 /**
11  * Die Klasse TKDBResult kreiert einen Vektor, desse Elemente Hashes sind.
12  * Diese Hashtables enthalten als Key den Tabellennamen des DB-Ergebnisses
13  * und als Value den wert eine Zeile zu den Tabellennamen.
14  *
15  * Beispiel:
16  * NAME ALTER ORT
17  * --------------------
18  * Hans 22 Berlin
19  * Susi 33 Bremen
20  * ... ... ...
21  * Tabellenname und Zeilenwert werden in einen hash abgelegt:
22  * {NAME=Hans, ALTER=22, ...} {NAME=SUSI,...,...}
23  * Diese Hashes werden in dieser Klasse erzeugt.
24  *
25  */

26 public class TKDBResultRowHash extends TKHashtable implements TKDBResultRow {
27
28     protected boolean hasResult = false;
29     //protected String colNames[] = null;
30

31     //-- careck
32
protected Vector colNames = null;
33     //--
34

35     /**
36      * Konstruktor1
37      * ruft konstruktor2 auf
38      *
39      * @param ResultSet rs, Ausfuehrung eines Querys (SQL) =>
40      * ein ResultSet-Object wurde kreiert und wird uebergeben (JDBCD)
41      */

42     public TKDBResultRowHash( ResultSet rs )
43     {
44         this( rs, new TKDBResultInfo( rs ) );
45     }
46  
47     /**
48      * Konstruktor2
49      *
50      * @param ResultSet rs, Ausfuehrung eines Querys (SQL) =>
51      * ein ResultSet-Object wurde kreiert und wird uebergeben (JDBCD)
52      * @param TKDBResultInfo info,Die Namen der Tabellen aus dem DB-Result werden in einem Array
53      * abgelegt und die Typen
54      */

55     public TKDBResultRowHash( ResultSet rs, TKDBResultInfo info )
56     {
57         super( info.colCount );
58         //this.colNames = info.colNames;
59

60         //-- careck
61
this.colNames = new Vector();
62         for (int i = 0 ; i < info.colNames.length ; i++)
63         {
64             this.colNames.addElement(info.colNames[i]);
65         }
66         //--
67

68         getResult( rs, info );
69     }
70     /**
71      * Der Hash wird gefuellt mit Key den Tabellennamen des DB-Ergebnisses
72      * und als Value den wert eine Zeile zu den Tabellennamen.
73      *
74      * @param ResultSet rs, Ausfuehrung eines Querys (SQL) =>
75      * ein ResultSet-Object wurde kreiert und wird uebergeben (JDBCD)
76      * @param TKDBResultInfo info,Die Namen der Tabellen aus dem DB-Result werden in einem Array
77      * abgelegt und die Typen
78      * @return true, wenn der Hash gefuellt wurde
79      */

80     public boolean getResult( ResultSet rs, TKDBResultInfo info )
81     {
82         try {
83             if( !rs.next() ) return false;
84             for (int i=1; i<=info.colCount; i++) {
85                 put( info.colNames[i-1], TKDBObjectCreator.getResultObject( rs, i, info.colTypes[i-1] ) );
86             }
87             hasResult = true;
88             return true;
89         }
90         catch (SQLException ex) {
91             TKDBLogger.logSQLException( ex );
92         }
93         return false;
94     }
95
96     /**
97      *
98      * @return true, wenn das Result existiert
99      */

100     public final boolean hasResult()
101     {
102         return hasResult;
103     }
104
105     /**
106      * @param String colName, Name einer Spalte der DBErgebnistabelle
107      * @return den Namen einer Spalte der DBErgebnistabelle
108      */

109     public Object JavaDoc getColumn( String JavaDoc colName )
110     {
111         return get( colName );
112     }
113     
114     /**
115      * @param int colIdx, Index fuer das Array mit den Namen
116      * einer Spalte der DBErgebnistabelle
117      * @return den Namen einer Spalte der DBErgebnistabelle
118      */

119     public Object JavaDoc getColumn( int colIdx )
120     {
121         //return get( colNames [ colIdx ] );
122

123         // careck ---
124
return get( colNames.elementAt(colIdx) );
125         // ---
126
}
127
128     /**
129      * @param int colIdx, Index fuer das Array mit den Label
130      * @return das Label
131      */

132     public String JavaDoc getColumnLabel( int colIdx )
133     {
134         //return colNames[ colIdx ];
135

136         // careck ---
137
return (String JavaDoc) colNames.elementAt(colIdx);
138         // ---
139
}
140
141     /**
142      * @return die Laenge eines Namens in einer
143      * Spalte der DBErgebnistabelle
144      */

145     public int getColumnCount()
146     {
147         //return colNames.length;
148

149         //-- careck
150
return colNames.size();
151         //--
152
}
153
154     /**
155         add a new column to the resultrow
156         @author careck
157     */

158     public void addColumn(String JavaDoc name, Object JavaDoc value)
159     {
160         colNames.addElement(name);
161         put (name, value);
162     }
163 }
164
165
Popular Tags