KickJava   Java API By Example, From Geeks To Geeks.

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


1 package de.webman.content.db.queries;
2
3 import java.sql.*;
4 import com.teamkonzept.db.*;
5 import com.teamkonzept.webman.mainint.WebmanExceptionHandler;
6 import com.teamkonzept.webman.mainint.db.queries.content.SelectMaxContent;
7 import com.teamkonzept.webman.mainint.db.queries.content.InsertContentXML;
8 import com.teamkonzept.webman.mainint.db.queries.content.SelectContent;
9
10 import de.webman.content.db.ContentConstants;
11
12 /**
13  * Inserts a new content into the database.
14  * <TABLE>
15  * <TR>
16  * <TD><B>Order</B></TD>
17  * <TD><B>Name</B></TD>
18  * <TD><B>Type</B></TD>
19  * </TR>
20  * <TR>
21  * <TD COLSPAN="3"><I>Parameters<I/></TD>
22  * </TR>
23  * <TR>
24  * <TD><TT>1</TT></TD>
25  * <TD><TT>de.webman.content.db.ContentConstants.XML_TEXT</TT></TD>
26  * <TD><TT>java.lang.String</TT></TD>
27  * </TR>
28  * <TR>
29  * <TD COLSPAN="3"><I>Results<I/></TD>
30  * </TR>
31  * <TR>
32  * <TD><TT>1</TT></TD>
33  * <TD><TT>de.webman.content.db.ContentConstants.CONTENT_ID</TT></TD>
34  * <TD><TT>java.lang.Integer</TT></TD>
35  * </TR>
36  * </TABLE>
37  *
38  * @author <A HREF="mailto:unl@webman.de">Ulrich Nicolas Liss&eacute;</A>,
39  * &copy; 2001 Webman AG.
40  * @version $Revision: 1.5 $
41  */

42 public class XMLContentInsert extends TKExtendedPrepQuery
43 {
44
45     public final static boolean IS_PREPARED = true;
46     public final static String JavaDoc[] PARAM_ORDER = { ContentConstants.XML_TEXT };
47     public final static Object JavaDoc[][] PARAM_TYPES =
48     { {ContentConstants.XML_TEXT, new Integer JavaDoc(Types.CLOB)} };
49     public final static boolean[] SET_RELEVANTS = { true };
50
51     protected static Class JavaDoc[] queryClasses = {
52     SelectMaxContent.class, // [0]
53
InsertContentXML.class, // [1]
54
SelectContent.class // [2]
55
};
56
57     public boolean execute()
58     {
59     try
60     {
61
62         init(queryClasses); // init query objects
63

64         // BEGIN TRANSACTION
65
boolean isNotOpen = aTKDBConnection.isAutoCommit();
66         if (isNotOpen)
67         {
68         TKDBManager.beginTransaction(); // begin transaction
69
}
70
71         Integer JavaDoc contentId = null;
72         int id = 1;
73
74         // [0]
75
queries[0].execute();
76         ResultSet rs = queries[0].fetchResultSet();
77         if (rs != null && rs.next())
78         {
79         id = rs.getInt(1) + 1;
80         }
81         contentId = new Integer JavaDoc(id);
82         // [1]
83
queries[1].setQueryParams(ContentConstants.CONTENT_ID, contentId);
84         queries[1].setQueryParams(ContentConstants.XML_TEXT, queryParams.get(ContentConstants.XML_TEXT));
85         queries[1].execute();
86         // [2]
87
queries[2].setQueryParams(ContentConstants.CONTENT_ID, contentId);
88         queries[2].execute();
89         addResult(queries[2].fetchResultSet());
90
91         // COMMIT TRANSACTION
92
if (isNotOpen)
93         {
94         aTKDBConnection.commitTransaction(); // commit all changes
95
}
96
97     }
98     catch(Throwable JavaDoc t)
99     {
100         TKDBManager.safeRollbackTransaction(t);
101     }
102     return hasResults();
103     }
104
105     public void initQuery(Connection con)
106     {
107     super.initQuery(con,
108             IS_PREPARED,
109             PARAM_ORDER, PARAM_TYPES, SET_RELEVANTS, sqlString);
110     }
111 }
112
Popular Tags