1 package de.webman.content.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.content.SelectMaxContent; 7 import com.teamkonzept.webman.mainint.db.queries.content.InsertContentXML; 8 import com.teamkonzept.webman.mainint.db.queries.content.SelectContent; 9 10 import de.webman.content.db.ContentConstants; 11 12 42 public class XMLContentInsert extends TKExtendedPrepQuery 43 { 44 45 public final static boolean IS_PREPARED = true; 46 public final static String [] PARAM_ORDER = { ContentConstants.XML_TEXT }; 47 public final static Object [][] PARAM_TYPES = 48 { {ContentConstants.XML_TEXT, new Integer (Types.CLOB)} }; 49 public final static boolean[] SET_RELEVANTS = { true }; 50 51 protected static Class [] queryClasses = { 52 SelectMaxContent.class, InsertContentXML.class, SelectContent.class }; 56 57 public boolean execute() 58 { 59 try 60 { 61 62 init(queryClasses); 64 boolean isNotOpen = aTKDBConnection.isAutoCommit(); 66 if (isNotOpen) 67 { 68 TKDBManager.beginTransaction(); } 70 71 Integer contentId = null; 72 int id = 1; 73 74 queries[0].execute(); 76 ResultSet rs = queries[0].fetchResultSet(); 77 if (rs != null && rs.next()) 78 { 79 id = rs.getInt(1) + 1; 80 } 81 contentId = new Integer (id); 82 queries[1].setQueryParams(ContentConstants.CONTENT_ID, contentId); 84 queries[1].setQueryParams(ContentConstants.XML_TEXT, queryParams.get(ContentConstants.XML_TEXT)); 85 queries[1].execute(); 86 queries[2].setQueryParams(ContentConstants.CONTENT_ID, contentId); 88 queries[2].execute(); 89 addResult(queries[2].fetchResultSet()); 90 91 if (isNotOpen) 93 { 94 aTKDBConnection.commitTransaction(); } 96 97 } 98 catch(Throwable t) 99 { 100 TKDBManager.safeRollbackTransaction(t); 101 } 102 return hasResults(); 103 } 104 105 public void initQuery(Connection con) 106 { 107 super.initQuery(con, 108 IS_PREPARED, 109 PARAM_ORDER, PARAM_TYPES, SET_RELEVANTS, sqlString); 110 } 111 } 112 | Popular Tags |