KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > de > webman > acl > db > queries > UserInsert


1 package de.webman.acl.db.queries;
2
3 import java.sql.Connection JavaDoc;
4 import java.sql.Types JavaDoc;
5 import java.sql.SQLException JavaDoc;
6 import java.sql.ResultSet JavaDoc;
7 import com.teamkonzept.db.*;
8 import com.teamkonzept.webman.mainint.db.queries.accesscontrol.*;
9 import com.teamkonzept.webman.mainint.WebmanExceptionHandler;
10
11 /**
12  * $Header: /cvsroot/webman-cms/source/webman/de/webman/acl/db/queries/UserInsert.java,v 1.2 2001/09/19 11:51:38 markus Exp $
13  *
14  * @version 0.10
15  * @since 0.10
16  * @author © 2000 Team-Konzept
17  */

18 public class UserInsert
19     extends TKExtendedPrepQuery
20 {
21
22     // Constants
23

24     public static final String JavaDoc[] ORDER =
25     {
26         "NAME",
27         "LOGIN",
28         "TYPE"
29     };
30
31     public static final Object JavaDoc[][] TYPES =
32     {
33         {"NAME", new Integer JavaDoc(Types.VARCHAR)},
34         {"LOGIN", new Integer JavaDoc(Types.VARCHAR)},
35         {"TYPE", new Integer JavaDoc(Types.CHAR)}
36     };
37
38     public static final boolean[] RELEVANTS =
39     {
40         true
41     };
42
43 /* public static final String SQL = (new StringBuffer()).append("DECLARE @ID INT ")
44                                                          .append("SELECT @ID = ISNULL(MAX(WM_USER_ID) + 1, 1) FROM WM_USER ")
45                                                          .append("INSERT INTO WM_USER (WM_USER_ID, NAME, LOGIN, TYPE) VALUES (@ID, ?, ?, ?) ")
46                                                          .append("SELECT * FROM WM_USER WHERE WM_USER_ID = @ID")
47                                                          .toString(); */

48
49     protected static Class JavaDoc[] queryClasses = {
50       SelectIDWMUser.class,
51       InsertWMUser.class,
52       SelectWMUser.class
53     };
54
55     // Method implementations
56

57   public boolean execute() {
58     try {
59         init(queryClasses);
60
61         boolean isNotOpen = aTKDBConnection.isAutoCommit();
62         if (isNotOpen) {
63            aTKDBConnection.beginTransaction(); // start transaction
64
}
65         queries[0].execute(); // execute first query
66
ResultSet JavaDoc rs = queries[0].fetchResultSet();
67         Integer JavaDoc wmUserId = null;
68         if (rs != null && rs.next()) {
69           int max = 1;
70            max = rs.getInt(1) + 1; // get max if any and increase by 1
71
wmUserId = new Integer JavaDoc(max);
72         }
73
74         queries[1].setQueryParams("WM_USER_ID", wmUserId);
75         queries[1].setQueryParams("NAME", queryParams.get("NAME"));
76         queries[1].setQueryParams("LOGIN", queryParams.get("LOGIN"));
77         queries[1].setQueryParams("TYPE", queryParams.get("TYPE"));
78         queries[1].execute(); // ...and execute it
79

80         queries[2].setQueryParams("WM_USER_ID", wmUserId);
81         queries[2].execute(); // ...and execute it
82
addResult(queries[2].fetchResultSet());
83
84         if (isNotOpen) {
85            aTKDBConnection.commitTransaction();
86         }
87
88     }
89     catch (SQLException JavaDoc sqle) {
90       WebmanExceptionHandler.getException(sqle);
91       try {
92         aTKDBConnection.rollbackTransaction();
93       }
94       catch (SQLException JavaDoc sqle2) {
95         WebmanExceptionHandler.getException(sqle2);
96       }
97     }
98     finally {
99         return hasResults();
100     }
101   }
102
103     public void initQuery (Connection JavaDoc connection)
104     {
105         super.initQuery(connection,
106                         true,
107                         ORDER,
108                         TYPES,
109                         RELEVANTS,
110                         null);
111     }
112
113 }
114
Popular Tags