KickJava   Java API By Example, From Geeks To Geeks.

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


1 package de.webman.content.db.queries;
2
3 import com.teamkonzept.db.*;
4 import java.sql.*;
5
6 import de.webman.content.db.queries.SelectNextIdFromContentAttribute;
7 import de.webman.content.db.queries.InsertContentAttribute;
8 import de.webman.content.db.queries.InsertContentAttributeValue;
9 import de.webman.content.db.queries.SelectAttributeContentAttribute;
10
11 /**
12  * <pre>
13  * Used Queries:
14  * {@link de.webman.content.db.queries.SelectNextIdFromContentAttribute SelectNextIdFromContentAttribute}
15  * {@link de.webman.content.db.queries.InsertContentAttribute InsertContentAttribute}
16  * {@link de.webman.content.db.queries.InsertContentAttributeValue InsertContentAttributeValue}
17  * {@link de.webman.content.db.queries.SelectAttributeContentAttribute SelectAttributeContentAttribute}
18  * Params:
19  * { "CONTENT_ID", "ATTRIBUTE_ID", "STR_VALUE", "INT_VALUE", "DATE_VALUE" }
20  * </pre>
21  * @author
22  * @version
23  */

24 public class TKDBContentAttributePut extends TKExtendedPrepQuery {
25
26     public final static boolean ISPREPARED = true;
27     public final static String JavaDoc[] PARAMORDER =
28     { "CONTENT_ID", "ATTRIBUTE_ID", "STR_VALUE", "INT_VALUE", "DATE_VALUE" };
29
30     public final static Object JavaDoc[][] PARAMTYPES =
31     {
32       {"CONTENT_ID", new Integer JavaDoc(Types.INTEGER)},
33       {"ATTRIBUTE_ID", new Integer JavaDoc(Types.INTEGER)},
34       {"STR_VALUE", new Integer JavaDoc(Types.VARCHAR)},
35       {"INT_VALUE", new Integer JavaDoc(Types.INTEGER)},
36       {"DATE_VALUE", new Integer JavaDoc(Types.TIMESTAMP)} };
37
38     public final static boolean[] SETRELEVANTS = { true };
39
40     /* public final static String SQLSTRING =
41     "DECLARE @CONT_ID INT " +
42     "DECLARE @VAL_ID INT " +
43
44     "BEGIN TRANSACTION " +
45
46     "SELECT @CONT_ID = ? " +
47
48     "SELECT @VAL_ID=ISNULL(MAX(VALUE_ID)+1, 1) " +
49     "FROM CONTENT_ATTRIBUTE " +
50
51     "INSERT INTO CONTENT_ATTRIBUTE (VALUE_ID,ATTRIBUTE_ID,STR_VALUE,INT_VALUE,DATE_VALUE) " +
52     "VALUES(@VAL_ID,?,?,?,?) " +
53
54     "INSERT INTO CONTENT_ATTRIBUTE_VALUE (CONTENT_ID, VALUE_ID) " +
55     " VALUES (@CONT_ID, @VAL_ID) " +
56
57         "COMMIT TRANSACTION " +
58
59         "SELECT CV.CONTENT_ID, CA.*, A.NAME, A.TYPE, A.CLASSNAME " +
60     " FROM CONTENT_ATTRIBUTE_VALUE CV, CONTENT_ATTRIBUTE CA, ATTRIBUTE A " +
61     "WHERE CV.CONTENT_ID = @CONT_ID AND CV.VALUE_ID = @VAL_ID AND " +
62     " CA.VALUE_ID = @VAL_ID AND A.ATTRIBUTE_ID = CA.ATTRIBUTE_ID ";*/

63
64     protected static Class JavaDoc[] queryClasses = {
65     SelectNextIdFromContentAttribute.class, // [0]
66
InsertContentAttribute.class, // [1]
67
InsertContentAttributeValue.class, // [2]
68
SelectAttributeContentAttribute.class // [3]
69
};
70
71     public boolean execute()
72     {
73     try
74     {
75
76         init(queryClasses); // init query objects
77

78         // BEGIN TRANSACTION
79
boolean isNotOpen = aTKDBConnection.isAutoCommit();
80         if (isNotOpen)
81         {
82         TKDBManager.beginTransaction(); // begin transaction
83
}
84
85         Integer JavaDoc valueId = null;
86         int id = 1;
87
88         // [0]
89
queries[0].execute();
90         ResultSet rs = queries[0].fetchResultSet();
91         if (rs != null && rs.next())
92         {
93         id = rs.getInt(1);
94         }
95         valueId = new Integer JavaDoc(id);
96         // [1]
97
queries[1].setQueryParams("VALUE_ID", valueId);
98         queries[1].setQueryParams("ATTRIBUTE_ID", queryParams.get("ATTRIBUTE_ID"));
99         queries[1].setQueryParams("STR_VALUE", queryParams.get("STR_VALUE"));
100         queries[1].setQueryParams("INT_VALUE", queryParams.get("INT_VALUE"));
101         queries[1].setQueryParams("DATE_VALUE", queryParams.get("DATE_VALUE"));
102         queries[1].execute();
103         // [2]
104
queries[2].setQueryParams("CONTENT_ID", queryParams.get("CONTENT_ID"));
105         queries[2].setQueryParams("VALUE_ID", valueId);
106         queries[2].execute();
107         // [3]
108
queries[3].setQueryParams("CONTENT_ID", queryParams.get("CONTENT_ID"));
109         queries[3].setQueryParams("VALUE_ID", valueId);
110         queries[3].execute();
111         addResult(queries[3].fetchResultSet());
112
113         // COMMIT TRANSACTION
114
if (isNotOpen)
115         {
116         aTKDBConnection.commitTransaction(); // commit all changes
117
}
118
119     }
120     catch(Throwable JavaDoc t)
121         {
122         TKDBManager.safeRollbackTransaction(t);
123     }
124     return hasResults();
125     }
126     public void initQuery(Connection con) {
127         super.initQuery(
128             con,
129             ISPREPARED,
130             PARAMORDER,
131             PARAMTYPES,
132             SETRELEVANTS,
133             null );
134     }
135 }
136
Popular Tags