KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > de > webman > form > db > queries > SelectFormProperties


1 package de.webman.form.db.queries;
2
3 import java.sql.Connection JavaDoc;
4 import java.sql.SQLException JavaDoc;
5 import java.util.Vector JavaDoc;
6 import com.teamkonzept.db.TKPrepQuery;
7 import com.teamkonzept.lib.TKHashtable;
8 import de.webman.form.db.FieldConstants;
9 import de.webman.form.db.FormConstants;
10
11 /**
12  * Selects all properties of the specified form definition.
13  * <TABLE>
14  * <TR>
15  * <TD><B>Order</B></TD>
16  * <TD><B>Name</B></TD>
17  * <TD><B>Type</B></TD>
18  * </TR>
19  * <TR>
20  * <TD COLSPAN="3"><I>Parameters</I></TD>
21  * </TR>
22  * <TR>
23  * <TD><TT>1</TT></TD>
24  * <TD><TT>de.webman.form.db.FormConstants.FORM_ID</TT></TD>
25  * <TD><TT>java.lang.Integer</TT></TD>
26  * </TR>
27  * <TR>
28  * <TD COLSPAN="3"><I>Results</I></TD>
29  * </TR>
30  * <TR>
31  * <TD><TT>1</TT></TD>
32  * <TD><TT>de.webman.form.db.FormConstants.FORM_ID</TT></TD>
33  * <TD><TT>java.lang.Integer</TT></TD>
34  * </TR>
35  * <TR>
36  * <TD><TT>2</TT></TD>
37  * <TD><TT>de.webman.form.db.FormConstants.FORM_TYPE</TT></TD>
38  * <TD><TT>java.lang.Integer</TT></TD>
39  * </TR>
40  * <TR>
41  * <TD><TT>3</TT></TD>
42  * <TD><TT>de.webman.form.db.FieldConstants.FIELD_NAME</TT></TD>
43  * <TD><TT>java.lang.String</TT></TD>
44  * </TR>
45  * <TR>
46  * <TD><TT>4</TT></TD>
47  * <TD><TT>de.webman.form.db.FieldConstants.FIELD_SHOW_NAME</TT></TD>
48  * <TD><TT>java.lang.String</TT></TD>
49  * </TR>
50  * </TABLE>
51  *
52  * @author $Author: uli $
53  * @version $Revision: 1.2 $
54  */

55 public class SelectFormProperties
56     extends TKPrepQuery
57 {
58
59     // Constants.
60

61     /**
62      * The preparation state.
63      */

64     private final static boolean IS_PREPARED = true;
65
66     /**
67      * The relevance state.
68      */

69     private final static boolean[] SET_RELEVANTS =
70     {
71         true
72     };
73
74
75     // Attributes.
76

77     /**
78      * The parameter order list.
79      */

80     private Vector JavaDoc list = null;
81
82
83     // Implementation of 'com.teamkonzept.db.TKQuery'
84

85     /**
86      * Initializes the query with the given connection.
87      *
88      * @param connection the connection.
89      */

90     public void initQuery (Connection JavaDoc connection)
91     {
92         super.initQuery(connection,
93                         IS_PREPARED,
94                         null,
95                         null,
96                         SET_RELEVANTS,
97                         null);
98     }
99
100     /**
101      * Sets a query parameter.
102      *
103      * @param name the parameter name.
104      * @param value the parameter value.
105      */

106     public final void setQueryParams (String JavaDoc name, Object JavaDoc value)
107     {
108         name = (new StringBuffer JavaDoc(name)).append("_")
109                                        .append(super.queryParams.size())
110                                        .toString();
111
112         if (this.list == null)
113         {
114             this.list = new Vector JavaDoc();
115         }
116
117         list.addElement(name);
118
119         super.setQueryParams(name, value);
120     }
121
122     /**
123      * Executes the query.
124      *
125      * @return <CODE>true</CODE>, if the query has been executed
126      * successfully, otherwise <CODE>false</CODE>.
127      * @throws SQLException if any error occurred during query execution.
128      */

129     public final boolean execute ()
130         throws SQLException JavaDoc
131     {
132         // Initialize parameter order array.
133
String JavaDoc[] order = new String JavaDoc[this.list.size()];
134
135         // Initialize parameter types hash.
136
TKHashtable types = new TKHashtable();
137
138         // Initialize SQL buffer.
139
StringBuffer JavaDoc sql = new StringBuffer JavaDoc("SELECT FO.FORM_ID, FO.FORM_TYPE, FI.FIELD_NAME, FI.FIELD_SHOW_NAME FROM FORM FO, FIELD FI WHERE FO.FORM_ID IN (");
140
141         for (int index = 0; index < this.list.size(); index++)
142         {
143             if (index > 0)
144             {
145                 sql.append(", ");
146             }
147
148             // Build SQL.
149
sql.append("?");
150
151             // Get parameter name.
152
String JavaDoc parameter = this.list.elementAt(index).toString();
153
154             // Build parameter order.
155
order[index] = parameter;
156
157             // Build parameter type.
158
types.put(parameter, FormConstants.COLUMN_TYPES[FormConstants.FORM_ID]);
159
160         }
161
162         // Clear list.
163
this.list.clear();
164
165         // Build SQL.
166
sql.append(") AND FO.FORM_ID = FI.FORM_ID AND FI.FIELD_ID = 0");
167
168         // Set parameter order.
169
super.paramOrder = order;
170
171         // Set parameter types.
172
super.paramTypes = types;
173
174         // Set SQL string.
175
super.sqlString = sql.toString();
176
177         // Set JDBC statement.
178
super.stmt = super.conn.prepareStatement(super.sqlString);
179
180         return super.execute();
181     }
182
183 }
184
Popular Tags