KickJava   Java API By Example, From Geeks To Geeks.

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


1 package com.teamkonzept.webman.mainint.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.presentation.*;
7
8 /**
9  * TKDBPresCompInsert
10  * input "PRESENTATION_ID", "COMPONENT_TYPE", "INTEGRATION_TYPE",
11  * "INTEGRATION_NAME", "INTEGRATION_SHORTNAME",
12  *
13  * ouptut neu erzeugter DS
14  *
15  * erzeugt neuen Eintrag in PRESENTATION_COMPONENT
16  *
17  * @author $Author: uli $
18  * @version $Revision: 1.8 $
19  */

20 public class TKDBPresCompInsert
21     extends TKExtendedPrepQuery
22 {
23
24     public final static boolean IS_PREPARED = true;
25
26     public final static String JavaDoc[] PARAMETER_ORDER =
27     { "PRESENTATION_ID", "COMPONENT_TYPE", "INTEGRATION_TYPE",
28     "INTEGRATION_NAME", "INTEGRATION_SHORTNAME"
29     };
30
31     public final static Object JavaDoc[][] PARAMETER_TYPES =
32     { {"INTEGRATION_NAME", new Integer JavaDoc(Types.VARCHAR)},
33     {"INTEGRATION_SHORTNAME", new Integer JavaDoc(Types.VARCHAR)}
34     };
35
36     public final static boolean[] SET_RELEVANTS = { true };
37
38 /* public final static String sqlString =
39         "DECLARE @PIDX int " +
40         "DECLARE @PID int " +
41
42         "SELECT @PID = ? " +
43
44         "BEGIN TRANSACTION " +
45
46         "SELECT " +
47         " @PIDX=ISNULL(MAX(PRESENTATION_COMPONENT_IDX)+1, 0) " +
48         "FROM " +
49         " PRESENTATION_COMPONENT " +
50         "WHERE " +
51         " PRESENTATION_ID = @PID " +
52
53         "INSERT INTO " +
54         " PRESENTATION_COMPONENT " +
55         " (PRESENTATION_ID, PRESENTATION_COMPONENT_IDX, " +
56         " COMPONENT_TYPE, INTEGRATION_TYPE, " +
57         " INTEGRATION_NAME, INTEGRATION_SHORTNAME) " +
58         "VALUES " +
59         " (@PID, @PIDX, ?, ?, ?, ?) " +
60
61         "SELECT " +
62         " * " +
63         "FROM " +
64         " PRESENTATION_COMPONENT " +
65         "WHERE " +
66         " PRESENTATION_ID = @PID " +
67         "AND " +
68         " PRESENTATION_COMPONENT_IDX = @PIDX " +
69
70         "COMMIT "; */

71
72     protected static Class JavaDoc[] queryClasses = {
73     SelectMaxPresentationComponent.class, // SELECT MAX(PRESENTATION_COMPONTENT) WHERE PRESENTATION_ID = ?
74
InsertPresentationComponent.class, // INSERT INTO PRESENTATION_COMPONENT (PRESENTATION_ID, PRESENTATION_COMPONENT_IDX, COMPONENT_TYPE, INTEGRATION_TYPE, INTEGRATION_NAME, INTEGRATION_SHORTNAME) VALUES (@PID, @PIDX, ?, ?, ?, ?)
75
SelectPresentationComponent.class // SELECT * FROM PRESENTATION_COMPONENT WHERE PRESENTATION_ID = ? AND PRESENTATION_COMPONENT_IDX = ?
76
};
77
78     /**
79      * Executes the query.
80      *
81      * @return <CODE>true</CODE>, if the query has been executed
82      * successfully, otherwise <CODE>false</CODE>.
83      */

84     public boolean execute ()
85     {
86         try
87         {
88             init(queryClasses);
89             Integer JavaDoc presId = (Integer JavaDoc) queryParams.get("PRESENTATION_ID");
90
91             boolean isNotOpen = aTKDBConnection.isAutoCommit();
92             if (isNotOpen)
93             {
94             TKDBManager.beginTransaction();
95             }
96
97             queries[0].setQueryParams("PRESENTATION_ID", presId);
98               queries[0].execute(); // SELECT MAX(PRESENTATION_COMPONTENT) FROM PRESENTATION_COMPONENT WHERE PRESENTATION_ID = ?
99
ResultSet rs = queries[0].fetchResultSet();
100             int max = 0;
101             if (rs != null && rs.next())
102             {
103             max = rs.getInt(1) + 1;
104             }
105             Integer JavaDoc presComp = new Integer JavaDoc(max);
106
107             queries[1].setQueryParams("PRESENTATION_ID", presId);
108             queries[1].setQueryParams("PRESENTATION_COMPONENT_IDX", presComp);
109             queries[1].setQueryParams("COMPONENT_TYPE",
110                           queryParams.get("COMPONENT_TYPE"));
111             queries[1].setQueryParams("INTEGRATION_TYPE",
112                           queryParams.get("INTEGRATION_TYPE"));
113             queries[1].setQueryParams("INTEGRATION_NAME",
114                           queryParams.get("INTEGRATION_NAME"));
115             queries[1].setQueryParams("INTEGRATION_SHORTNAME",
116                           queryParams.
117                           get("INTEGRATION_SHORTNAME"));
118             queries[1].execute(); // INSERT INTO PRESENTATION_COMPONENT (PRESENTATION_ID, PRESENTATION_COMPONENT_IDX, COMPONENT_TYPE, INTEGRATION_TYPE, INTEGRATION_NAME, INTEGRATION_SHORTNAME) VALUES (@PID, @PIDX, ?, ?, ?, ?)
119

120             queries[2].setQueryParams("PRESENTATION_ID", presId);
121             queries[2].setQueryParams("PRESENTATION_COMPONENT_IDX", presComp);
122             queries[2].execute(); // SELECT * FROM PRESENTATION_COMPONENT WHERE PRESENTATION_ID = ? AND PRESENTATION_COMPONENT_IDX = ?
123
addResult(queries[2].fetchResultSet());
124
125             if (isNotOpen)
126             {
127             TKDBManager.commitTransaction();
128             }
129
130         }
131         catch(Throwable JavaDoc t)
132         {
133             TKDBManager.safeRollbackTransaction(t);
134         }
135         return hasResults();
136     }
137
138     /**
139      * Initializes the query with the given connection.
140      *
141      * @param connection the connection.
142      */

143     public void initQuery (Connection connection)
144     {
145         super.initQuery(connection,
146                         IS_PREPARED,
147                         PARAMETER_ORDER,
148                         PARAMETER_TYPES,
149                         SET_RELEVANTS,
150                         sqlString);
151     }
152
153 }
154
Popular Tags