KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > teamkonzept > webman > mainint > db > queries > TKContentInstanceNew


1 package com.teamkonzept.webman.mainint.db.queries;
2
3 import com.teamkonzept.db.*;
4 import java.sql.*;
5 import com.teamkonzept.webman.mainint.WebmanExceptionHandler;
6 import com.teamkonzept.webman.mainint.db.queries.content.*;
7
8 /**
9  *
10  * @author
11  * @version
12  */

13 public class TKContentInstanceNew extends TKExtendedPrepQuery
14 {
15
16     public final static boolean ISPREPARED = true;
17
18     public final static String JavaDoc[] PARAMORDER =
19     { "CONTENT_NODE_ID", "INST_NAME" };
20
21     public final static Object JavaDoc[][] TYPES =
22     { {"INST_NAME", new Integer JavaDoc(Types.VARCHAR)} };
23
24     public final static boolean[] SETRELEVANTS = { true };
25
26     protected static Class JavaDoc[] queryClasses = {
27     SelectMaxFromContentInstance.class,
28     InsertContentInstance.class,
29     SelectAllContentInstance.class
30     };
31
32     public boolean execute()
33     {
34     try
35     {
36         init(queryClasses); // init query objects
37

38         Integer JavaDoc contentNodeId =
39         (Integer JavaDoc) queryParams.get("CONTENT_NODE_ID");
40         String JavaDoc instanceName = (String JavaDoc) queryParams.get("INST_NAME");
41
42         boolean isNotOpen = aTKDBConnection.isAutoCommit();
43         if (isNotOpen)
44         {
45         TKDBManager.beginTransaction();
46         }
47
48         int inst_id = 1;
49         // SELECT @INST_ID=ISNULL(MAX(INSTANCE_ID)+1, 1) FROM CONTENT_INSTANCE
50
queries[0].execute();
51         ResultSet rs = queries[0].fetchResultSet();
52         if (rs != null && rs.next())
53         {
54         inst_id = rs.getInt(1) + 1;
55         }
56         Integer JavaDoc instanceId = new Integer JavaDoc(inst_id);
57
58         // INSERT INTO CONTENT_INSTANCE (CONTENT_NODE_ID, INSTANCE_ID, NAME)
59
// VALUES(@N_ID, @INST_ID, ?)
60
// PARAMS: N_ID, INST_ID, INST_NAME (VARCHAR)
61
queries[1].setQueryParams("N_ID", contentNodeId);
62         queries[1].setQueryParams("INST_ID", instanceId);
63         queries[1].setQueryParams("INST_NAME", instanceName);
64         queries[1].execute();
65
66         if (isNotOpen)
67         {
68         aTKDBConnection.commitTransaction(); // commit all changes
69
}
70
71         // SELECT * FROM CONTENT_INSTANCE WHERE INSTANCE_ID = @INST_ID "
72
// PARAMS: INST_ID
73
queries[2].setQueryParams("INST_ID", instanceId);
74         queries[2].execute();
75         addResult(queries[2].fetchResultSet());
76
77     }
78     catch(Throwable JavaDoc t)
79     {
80         TKDBManager.safeRollbackTransaction(t);
81     }
82     return hasResults();
83     }
84
85     public void initQuery(Connection con)
86     {
87     super.initQuery(con,
88             ISPREPARED, PARAMORDER, TYPES, SETRELEVANTS, null);
89     }
90 }
91
Popular Tags