KickJava   Java API By Example, From Geeks To Geeks.

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


1 package com.teamkonzept.webman.mainint.db.queries.oracle;
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 public class TKContentInstanceNew extends TKExtendedPrepQuery
9 {
10
11     public final static boolean isPrepared = true;
12
13     public final static String JavaDoc[] paramOrder =
14     { "CONTENT_NODE_ID", "INST_NAME" };
15
16     public final static Object JavaDoc[][] types =
17     { {"INST_NAME", new Integer JavaDoc(Types.VARCHAR)} };
18
19     public final static boolean[] setRelevants = { true };
20
21 /* public final static String sqlString =
22         "DECLARE @N_ID INT " +
23         "DECLARE @INST_ID INT " +
24
25         "BEGIN TRANSACTION " +
26
27         "SELECT @N_ID = ? " +
28
29         "SELECT @INST_ID=ISNULL(MAX(INSTANCE_ID)+1, 1) " +
30         "FROM CONTENT_INSTANCE " +
31
32         "INSERT INTO CONTENT_INSTANCE (CONTENT_NODE_ID, INSTANCE_ID, NAME) " +
33         "VALUES(@N_ID, @INST_ID, ?) " +
34
35         "COMMIT TRANSACTION " +
36
37         "SELECT * FROM CONTENT_INSTANCE " +
38         "WHERE INSTANCE_ID = @INST_ID "; */

39
40     protected static Class JavaDoc[] queryClasses = {
41     SelectMaxFromContentInstance.class,
42     InsertContentInstance.class,
43     SelectAllContentInstance.class
44     };
45
46     public boolean execute()
47     {
48     try
49     {
50         init(queryClasses); // init query objects
51

52         Integer JavaDoc contentNodeId =
53         (Integer JavaDoc) queryParams.get("CONTENT_NODE_ID");
54         String JavaDoc instanceName = (String JavaDoc) queryParams.get("INST_NAME");
55
56         boolean isNotOpen = aTKDBConnection.isAutoCommit();
57         if (isNotOpen)
58         {
59         TKDBManager.beginTransaction();
60         }
61
62         int inst_id = 1;
63         // SELECT @INST_ID=ISNULL(MAX(INSTANCE_ID)+1, 1) FROM CONTENT_INSTANCE
64
queries[0].execute();
65         ResultSet rs = queries[0].fetchResultSet();
66         if (rs != null && rs.next())
67         {
68         inst_id = rs.getInt(1) + 1;
69         }
70         Integer JavaDoc instanceId = new Integer JavaDoc(inst_id);
71
72         // INSERT INTO CONTENT_INSTANCE (CONTENT_NODE_ID, INSTANCE_ID, NAME)
73
// VALUES(@N_ID, @INST_ID, ?)
74
// PARAMS: N_ID, INST_ID, INST_NAME (VARCHAR)
75
queries[1].setQueryParams("N_ID", contentNodeId);
76         queries[1].setQueryParams("INST_ID", instanceId);
77         queries[1].setQueryParams("INST_NAME", instanceName);
78         queries[1].execute();
79
80         if (isNotOpen)
81         {
82         aTKDBConnection.commitTransaction(); // commit all changes
83
}
84
85         // SELECT * FROM CONTENT_INSTANCE WHERE INSTANCE_ID = @INST_ID "
86
// PARAMS: INST_ID
87
queries[2].setQueryParams("INST_ID", instanceId);
88         queries[2].execute();
89         addResult(queries[2].fetchResultSet());
90
91     }
92     catch(Throwable JavaDoc t)
93     {
94         TKDBManager.safeRollbackTransaction(t);
95     }
96     return hasResults();
97     }
98
99     public void initQuery(Connection con)
100     {
101     super.initQuery(con,
102             isPrepared, paramOrder, types, setRelevants, null);
103     }
104 }
105
Popular Tags