1 package com.teamkonzept.field.db.queries; 2 3 import com.teamkonzept.db.*; 4 import com.teamkonzept.webman.mainint.db.queries.field.SelectMaxVersionIdFromContentVersion; 5 import com.teamkonzept.webman.mainint.db.queries.field.SelectMaxContentIdFromContent; 6 import com.teamkonzept.webman.mainint.db.queries.field.InsertContentIdContent; 7 import com.teamkonzept.webman.mainint.db.queries.content.InsertContentVersion; 8 import com.teamkonzept.webman.mainint.db.queries.field.SelectFromContentVersion; 9 10 import java.sql.*; 11 12 import org.apache.log4j.Category; 13 14 18 public class TKDBContentNew extends TKExtendedPrepQuery { 19 20 21 private static Category cat = Category.getInstance(TKDBContentNew.class.getName()); 22 public final static boolean IS_PREPARED = true; 23 public final static String [] PARAM_ORDER = 24 { "INSTANCE_ID", "STATUS_ID", "VERS_INFO", "VERS_AUTHOR" }; 25 26 public final static Object [][] PARAM_TYPES = { 27 {"VERS_INFO", new Integer (Types.VARCHAR)}, 28 {"VERS_AUTHOR", new Integer (Types.VARCHAR)} }; 29 30 public final static boolean[] SET_RELEVANTS = { true }; 31 32 protected static Class [] queryClasses = { 33 SelectMaxVersionIdFromContentVersion.class, SelectMaxContentIdFromContent.class, InsertContentIdContent.class, InsertContentVersion.class, SelectFromContentVersion.class }; 39 40 public boolean execute() 41 { 42 43 try 44 { 45 init(queryClasses); 47 boolean isNotOpen = aTKDBConnection.isAutoCommit(); 48 if (isNotOpen) 49 { 50 TKDBManager.beginTransaction(); } 52 53 ResultSet rs = null; 54 55 queries[0].execute(); 57 rs = queries[0].fetchResultSet(); 58 int next_version_id = 1; 59 if (rs.next()) { 60 next_version_id = rs.getInt(1) + 1; 61 } 62 Integer versionId = new Integer (next_version_id); 63 64 queries[1].execute(); 66 rs = queries[1].fetchResultSet(); 67 int next_content_id = 1; 68 if (rs.next()) { 69 next_content_id = rs.getInt(1) + 1; 70 } 71 Integer contentId = new Integer (next_content_id); 72 73 queries[2].setQueryParams("CONT_ID", contentId); 75 queries[2].execute(); 76 77 queries[3].setQueryParams("VERSION_ID",versionId); 80 queries[3].setQueryParams("INSTANCE_ID",queryParams.get("INSTANCE_ID")); 81 queries[3].setQueryParams("CONTENT_ID",contentId); 82 queries[3].setQueryParams("STATUS_ID",queryParams.get("STATUS_ID")); 83 queries[3].setQueryParams("DATE", new Timestamp(System.currentTimeMillis())); 84 queries[3].setQueryParams("VERS_INFO",queryParams.get("VERS_INFO")); 85 queries[3].setQueryParams("VERS_AUTHOR",queryParams.get("VERS_AUTHOR")); 86 queries[3].execute(); 87 88 queries[4].setQueryParams("VERS_ID", versionId); 90 queries[4].setQueryParams("INST_ID", queryParams.get("INSTANCE_ID")); 91 queries[4].execute(); 92 rs = queries[4].fetchResultSet(); 93 addResult(rs); 94 95 if (isNotOpen) 97 { 98 aTKDBConnection.commitTransaction(); } 100 101 } 102 catch(Throwable t) 103 { 104 cat.error("Error while inserting", t); 105 TKDBManager.safeRollbackTransaction(t); 106 } 107 return hasResults(); 108 } 109 110 public void initQuery(Connection con) { 111 super.initQuery( 112 con, 113 IS_PREPARED, 114 PARAM_ORDER, 115 PARAM_TYPES, 116 SET_RELEVANTS, 117 null); 118 } 119 } 120 | Popular Tags |