1 5 package com.teamkonzept.webman.mainint.db.queries; 6 7 import java.sql.*; 8 9 import com.teamkonzept.db.*; 10 import com.teamkonzept.webman.mainint.db.queries.content.*; 11 import com.teamkonzept.webman.mainint.WebmanExceptionHandler; 12 import com.teamkonzept.lib.TKNull; 13 14 import org.apache.log4j.Category; 15 16 23 public class TKDBDocContentPut extends TKExtendedPrepQuery 24 { 25 26 private final static Category cat = Category.getInstance(TKDBDocContentPut.class.getName()); 27 28 public final static boolean isPrepared = true; 29 30 public final static String [] paramOrder = { 31 "SELECTION_TYPE", "SELECTION_DATA", 32 "SITE_NODE_ID", "SITE_NODE_DOC_IDX", 33 "PRESENTATION_COMPONENT_IDX", "CONTENT_NODE_ID" 34 }; 35 36 public final static Object [][] types = 37 { {"SELECTION_TYPE", new Integer (Types.VARCHAR)} }; 38 39 public final static boolean[] setRelevants = { false }; 40 41 73 74 protected static Class [] queryClasses = { 75 SelectMaxContentSelection.class, 76 InsertContentSelection.class, 77 InsertDocumentContent.class 78 }; 79 80 public boolean execute() 81 { 82 try 83 { 84 85 init(queryClasses); 87 Object st = queryParams.get("SELECTION_TYPE"); 88 89 cat.debug("SELECTION_TYPE [st]=" + st); 90 91 boolean isNotOpen = aTKDBConnection.isAutoCommit(); 93 if (isNotOpen) 94 { 95 TKDBManager.beginTransaction(); } 97 98 Integer sid = null; 99 int max = 0; 100 if (st != null && !(st instanceof TKNull)) 102 { 103 cat.debug("SELECTION_TYPE is NOT null"); 104 queries[0].execute(); 106 ResultSet rs = queries[0].fetchResultSet(); 107 if (rs != null && rs.next()) 108 { 109 max = rs.getInt(1) + 1; 110 } 111 112 sid = new Integer (max); 113 cat.debug("SELECTION_ID [sid]=" + sid); 114 115 queries[1].setQueryParams("SELECTION_ID", sid); 118 queries[1].setQueryParams("SELECTION_TYPE", st); 119 queries[1].setQueryParams("SELECTION_DATA", 120 queryParams.get("SELECTION_DATA")); 121 queries[1].execute(); 122 } 124 125 queries[2].setQueryParams("SITE_NODE_ID", 128 queryParams.get("SITE_NODE_ID")); 129 queries[2].setQueryParams("SITE_NODE_DOC_IDX", 130 queryParams.get("SITE_NODE_DOC_IDX")); 131 queries[2].setQueryParams("PRESENTATION_COMPONENT_IDX", 132 queryParams. 133 get("PRESENTATION_COMPONENT_IDX")); 134 queries[2].setQueryParams("CONTENT_NODE_ID", 135 queryParams.get("CONTENT_NODE_ID")); 136 queries[2].setQueryParams("SELECTION_ID", sid); 137 queries[2].execute(); 138 139 if (isNotOpen) 141 { 142 aTKDBConnection.commitTransaction(); } 144 145 } 146 catch(Throwable t) 147 { 148 TKDBManager.safeRollbackTransaction(t); 149 } 150 return hasResults(); 151 } 152 153 public void initQuery(Connection con) 154 { 155 super.initQuery(con, 156 isPrepared, 157 paramOrder, types, setRelevants, sqlString); 158 } 159 } 160 | Popular Tags |