KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > de > webman > content > db > queries > XMLContentUpdate


1 package de.webman.content.db.queries;
2
3 import java.sql.Connection JavaDoc;
4 import java.sql.Types JavaDoc;
5 import java.sql.SQLException JavaDoc;
6 import com.teamkonzept.db.TKDBManager;
7 import com.teamkonzept.db.TKExtendedPrepQuery;
8 import com.teamkonzept.webman.mainint.db.queries.content.SelectContent;
9 import de.webman.content.db.ContentConstants;
10
11 /**
12  * Updates an existing content in the database.
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.content.db.ContentConstants.XML_TEXT</TT></TD>
25  * <TD><TT>java.lang.String</TT></TD>
26  * </TR>
27  * <TR>
28  * <TD><TT>2</TT></TD>
29  * <TD><TT>de.webman.content.db.ContentConstants.CONTENT_ID</TT></TD>
30  * <TD><TT>java.lang.Integer</TT></TD>
31  * </TR>
32  * <TR>
33  * <TD COLSPAN="3"><I>Results<I/></TD>
34  * </TR>
35  * <TR>
36  * <TD><TT>1</TT></TD>
37  * <TD><TT>de.webman.content.db.ContentConstants.CONTENT_ID</TT></TD>
38  * <TD><TT>java.lang.Integer</TT></TD>
39  * </TR>
40  * </TABLE>
41  *
42  * @author <A HREF="mailto:unl@webman.de">Ulrich Nicolas Liss&eacute;</A>,
43  * &copy; 2001 Webman AG.
44  * @version $Revision: 1.2 $
45  */

46 public class XMLContentUpdate
47     extends TKExtendedPrepQuery
48 {
49     // $Id: XMLContentUpdate.java,v 1.2 2001/12/27 14:37:07 alex Exp $
50

51     // Constants.
52

53     /**
54      * The preparation state.
55      */

56     private final static boolean IS_PREPARED = true;
57
58     /**
59      * The parameter order.
60      */

61     private final static String JavaDoc[] PARAMETER_ORDER =
62     {
63         ContentConstants.XML_TEXT,
64         ContentConstants.CONTENT_ID
65     };
66
67     /**
68      * The parameter types.
69      */

70     private final static Object JavaDoc[][] PARAMETER_TYPES =
71     {
72         {ContentConstants.XML_TEXT, new Integer JavaDoc(Types.CLOB)},
73         {ContentConstants.CONTENT_ID, new Integer JavaDoc(Types.INTEGER)}
74     };
75
76     /**
77      * The relevance state.
78      */

79     private final static boolean[] SET_RELEVANTS =
80     {
81         true
82     };
83
84     /**
85      * The sub-queries.
86      */

87     private static Class JavaDoc[] QUERY_CLASSES =
88     {
89         UpdateContent.class,
90         SelectContent.class
91     };
92
93
94     // Implementation of 'com.teamkonzept.db.TKQuery'
95

96     /**
97      * Executes the query.
98      *
99      * @return <CODE>true</CODE>, if the query has been executed
100      * successfully, otherwise <CODE>false</CODE>.
101      * @exception java.sql.SQLException if any error occurred
102      * during query execution.
103      */

104     public final boolean execute ()
105         throws SQLException JavaDoc
106     {
107         try
108         {
109             // Initialize queries.
110
init(QUERY_CLASSES);
111
112             // Get transaction state.
113
boolean transactional = aTKDBConnection.isAutoCommit();
114
115             if (transactional)
116             {
117                 // Begin transaction.
118
TKDBManager.beginTransaction();
119             }
120
121             // Perform update.
122
this.queries[0].setQueryParams(ContentConstants.XML_TEXT, queryParams.get(ContentConstants.XML_TEXT));
123             this.queries[0].setQueryParams(ContentConstants.CONTENT_ID, queryParams.get(ContentConstants.CONTENT_ID));
124             this.queries[0].execute();
125
126             // Perform select.
127
this.queries[1].setQueryParams(ContentConstants.CONTENT_ID, queryParams.get(ContentConstants.CONTENT_ID));
128             this.queries[1].execute();
129
130             // Add result.
131
addResult(this.queries[1].fetchResultSet());
132
133             if (transactional)
134             {
135                 // Commit transaction.
136
TKDBManager.commitTransaction();
137             }
138         }
139         catch (Throwable JavaDoc t)
140         {
141             TKDBManager.safeRollbackTransaction(t);
142         }
143
144         // Deliver result state.
145
return hasResults();
146     }
147
148     /**
149      * Initializes the query with the given connection.
150      *
151      * @param connection the connection.
152      */

153     public void initQuery (Connection JavaDoc connection)
154     {
155         super.initQuery(connection,
156                         IS_PREPARED,
157                         PARAMETER_ORDER,
158                         PARAMETER_TYPES,
159                         SET_RELEVANTS,
160                         this.sqlString);
161     }
162
163 }
164
Popular Tags