KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > opensubsystems > blog > persist > db > oracle > OracleBlogDatabaseSchema


1 /*
2  * Copyright (c) 2006 - 2007 OpenSubsystems s.r.o. Slovak Republic. All rights reserved.
3  *
4  * Project: OpenChronicle
5  *
6  * $Id: OracleBlogDatabaseSchema.java,v 1.7 2007/02/20 01:58:07 bastafidli Exp $
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; version 2 of the License.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20  */

21
22 package org.opensubsystems.blog.persist.db.oracle;
23
24 import java.sql.Connection JavaDoc;
25 import java.sql.SQLException JavaDoc;
26 import java.sql.Statement JavaDoc;
27 import java.util.logging.Level JavaDoc;
28 import java.util.logging.Logger JavaDoc;
29
30 import org.opensubsystems.blog.data.Blog;
31 import org.opensubsystems.blog.data.Entry;
32 import org.opensubsystems.blog.persist.db.BlogDatabaseSchema;
33 import org.opensubsystems.core.error.OSSException;
34 import org.opensubsystems.core.persist.db.DatabaseImpl;
35 import org.opensubsystems.core.util.DatabaseUtils;
36 import org.opensubsystems.core.util.Log;
37
38 /**
39  * Database specific operations related to persistence of blogs and their
40  * entries. This class encapsulate functionality specific for Oracle.
41  *
42  * @version $Id: OracleBlogDatabaseSchema.java,v 1.7 2007/02/20 01:58:07 bastafidli Exp $
43  * @author Julian Legeny
44  * @code.reviewer Miro Halas
45  * @code.reviewed 1.3 2006/07/21 00:54:58 jlegeny
46  */

47 public class OracleBlogDatabaseSchema extends BlogDatabaseSchema
48 {
49    /*
50       Use sequence for ID
51       Name all constraints to easily identify them later.
52       
53       CREATE SEQUENCE BLOG_ID_SEQ INCREMENT BY 1 START WITH 1 NOCYCLE
54
55       CREATE TABLE BF_BLOG
56       (
57          ID INTEGER NOT NULL,
58          DOMAIN_ID INTEGER NOT NULL,
59          FOLDER VARCHAR(50) NOT NULL,
60          CAPTION VARCHAR(1024) NOT NULL,
61          COMMENTS VARCHAR(4000) NOT NULL,
62          CREATION_DATE TIMESTAMP(9) NOT NULL,
63          MODIFICATION_DATE TIMESTAMP(9) NOT NULL,
64          CONSTRAINT BF_BLOG_PK PRIMARY KEY (ID),
65          CONSTRAINT BF_BLOG_FLDR_UQ UNIQUE (FOLDER)
66          // CONSTRAINT BF_BLOGDOM_FK FOREIGN KEY (DOMAIN_ID)
67          // REFERENCES BF_DOMAIN (ID) ON DELETE CASCADE
68       )
69
70
71       CREATE OR REPLACE PROCEDURE INSERT_BF_BLOG
72       (
73          IN_DOMAIN_ID IN INTEGER,
74          IN_FOLDER IN VARCHAR,
75          IN_CAPTION IN VARCHAR,
76          IN_COMMENTS IN VARCHAR,
77          OUT_KEY OUT INTEGER,
78          OUT_TIMESTAMP OUT TIMESTAMP
79       )
80       IS
81          NEW_OUT_KEY INTEGER;
82          NEW_OUT_TIMESTAMP TIMESTAMP(9);
83       BEGIN
84          SELECT BLOG_ID_SEQ.NEXTVAL INTO NEW_OUT_KEY FROM DUAL;
85          OUT_KEY := NEW_OUT_KEY;
86          SELECT SYSDATE INTO NEW_OUT_TIMESTAMP FROM DUAL;
87          OUT_TIMESTAMP := NEW_OUT_TIMESTAMP;
88          INSERT INTO " + strUserName + ".BF_BLOG(ID, DOMAIN_ID, FOLDER,
89             CAPTION, COMMENTS, CREATION_DATE, MODIFICATION_DATE)
90             VALUES (OUT_KEY, IN_DOMAIN_ID, IN_FOLDER, IN_CAPTION,
91             IN_COMMENTS, OUT_TIMESTAMP, OUT_TIMESTAMP);
92       END;
93
94
95       CREATE OR REPLACE PROCEDURE UPDATE_BF_BLOG
96       (
97          IN_FOLDER IN VARCHAR,
98          IN_CAPTION IN VARCHAR,
99          IN_COMMENTS IN VARCHAR,
100          IN_BLOG_ID IN INTEGER,
101          IN_DOMAIN_ID IN INTEGER,
102          IN_MODIFICATION_DATE IN TIMESTAMP,
103          OUT_TIMESTAMP OUT TIMESTAMP
104       )
105       IS
106          NEW_OUT_TIMESTAMP TIMESTAMP(9);
107       BEGIN
108          SELECT SYSDATE INTO NEW_OUT_TIMESTAMP FROM DUAL;
109          OUT_TIMESTAMP := NEW_OUT_TIMESTAMP;
110          UPDATE BF_BLOG SET FOLDER = IN_FOLDER, CAPTION = IN_CAPTION,
111                 COMMENTS = IN_COMMENTS, MODIFICATION_DATE = OUT_TIMESTAMP
112                 WHERE ID = IN_BLOG_ID AND DOMAIN_ID = IN_DOMAIN_ID
113                 AND MODIFICATION_DATE = IN_MODIFICATION_DATE;
114       END;
115
116
117       CREATE SEQUENCE BLOGENTRY_ID_SEQ INCREMENT BY 1 START WITH 1 NOCYCLE
118
119       CREATE TABLE BF_BLOG_ENTRY
120       (
121          ID INTEGER NOT NULL,
122          DOMAIN_ID INTEGER NOT NULL,
123          BLOG_ID INTEGER NOT NULL,
124          CAPTION VARCHAR(1024) NOT NULL,
125          COMMENTS VARCHAR(4000) NOT NULL,
126          IMAGEURL VARCHAR(1024) NOT NULL,
127          TARGETURL VARCHAR(1024) NOT NULL,
128          CREATION_DATE TIMESTAMP(9) NOT NULL,
129          MODIFICATION_DATE TIMESTAMP(9) NOT NULL,
130          CONSTRAINT BF_BLOGENTR_PK PRIMARY KEY (ID),
131          CONSTRAINT BF_BLOGENTR_FK FOREIGN KEY (BLOG_ID)
132             REFERENCES BF_BLOG (ID) ON DELETE CASCADE
133          // CONSTRAINT BF_BLOGENTRDOM_FK FOREIGN KEY (DOMAIN_ID)
134          // REFERENCES BF_DOMAIN (ID) ON DELETE CASCADE
135       )
136
137
138       CREATE OR REPLACE PROCEDURE INSERT_BF_BLOGENTR
139       (
140          IN_DOMAIN_ID IN INTEGER,
141          IN_BLOG_ID IN INTEGER,
142          IN_CAPTION IN VARCHAR,
143          IN_COMMENTS IN VARCHAR,
144          IN_IMAGEURL IN VARCHAR(,
145          IN_TARGETURL IN VARCHAR,
146          OUT_KEY OUT INTEGER,
147          OUT_TIMESTAMP OUT TIMESTAMP
148       )
149       IS
150          NEW_OUT_KEY INTEGER;
151          NEW_OUT_TIMESTAMP TIMESTAMP(9);
152       BEGIN
153          SELECT BLOGENTRY_ID_SEQ.NEXTVAL INTO NEW_OUT_KEY FROM DUAL;
154          OUT_KEY := NEW_OUT_KEY;
155          SELECT SYSDATE INTO NEW_OUT_TIMESTAMP FROM DUAL;
156          OUT_TIMESTAMP := NEW_OUT_TIMESTAMP;
157          INSERT INTO " + strUserName + ".BF_BLOG_ENTRY(ID, DOMAIN_ID, BLOG_ID,
158             CAPTION, COMMENTS, IMAGEURL, TARGETURL, CREATION_DATE, MODIFICATION_DATE)
159             VALUES (OUT_KEY, IN_DOMAIN_ID, IN_BLOG_ID, IN_CAPTION,
160             IN_COMMENTS, IN_IMAGEURL, IN_TARGETURL, OUT_TIMESTAMP, OUT_TIMESTAMP);
161       END;
162
163
164       CREATE OR REPLACE PROCEDURE UPDATE_BF_BLOGENTR
165       (
166          IN_CAPTION IN VARCHAR,
167          IN_COMMENTS IN VARCHAR,
168          IN_IMAGEURL IN VARCHAR,
169          IN_TARGETURL IN VARCHAR,
170          IN_ENTRY_ID IN INTEGER,
171          IN_DOMAIN_ID IN INTEGER,
172          IN_MODIFICATION_DATE IN TIMESTAMP,
173          OUT_TIMESTAMP OUT TIMESTAMP
174       )
175       IS
176          NEW_OUT_TIMESTAMP TIMESTAMP(9);
177       BEGIN
178          SELECT SYSDATE INTO NEW_OUT_TIMESTAMP FROM DUAL;
179          OUT_TIMESTAMP := NEW_OUT_TIMESTAMP;
180          UPDATE BF_BLOG_ENTRY SET CAPTION = IN_CAPTION, COMMENTS = IN_COMMENTS,
181                 IMAGEURL = IN_IMAGEURL, TARGETURL= IN_TARGETURL,
182                 MODIFICATION_DATE = OUT_TIMESTAMP
183                 WHERE ID = IN_ENTRY_ID AND DOMAIN_ID = IN_DOMAIN_ID
184                 AND MODIFICATION_DATE = IN_MODIFICATION_DATE;
185       END;
186    */

187
188    // Constants ////////////////////////////////////////////////////////////////
189

190    /**
191     * Maximal length of blog comments.
192     * Restriction for VARCHAR type is max. 4000 characters for Oracle.
193     */

194    public static final int BLOG_COMMENTS_MAXLENGTH_ORACLE = 4000;
195
196    /**
197     * Maximal length of blog entry comments.
198     * Restriction for VARCHAR type is max. 4000 characters for Oracle.
199     */

200    public static final int BLOGENTRY_COMMENTS_MAXLENGTH_ORACLE = 4000;
201
202    // Cached values ////////////////////////////////////////////////////////////
203

204    /**
205     * Logger for this class
206     */

207    private static Logger JavaDoc s_logger = Log.getInstance(OracleBlogDatabaseSchema.class);
208
209    // Constructors /////////////////////////////////////////////////////////////
210

211    /**
212     * Static initializer
213     */

214    static
215    {
216       // Setup maximal length of individual fields for Oracle database
217
Blog.setCommentsMaxLength(BLOG_COMMENTS_MAXLENGTH_ORACLE);
218       Entry.setCommentsMaxLength(BLOGENTRY_COMMENTS_MAXLENGTH_ORACLE);
219    }
220
221    /**
222     * Default constructor.
223     *
224     * @throws OSSException - error occured.
225     */

226    public OracleBlogDatabaseSchema(
227    ) throws OSSException
228    {
229       super();
230    }
231
232    // Public methods ///////////////////////////////////////////////////////////
233

234    /**
235     * {@inheritDoc}
236     */

237    public void create(
238       Connection JavaDoc cntDBConnection,
239       String JavaDoc strUserName
240    ) throws SQLException JavaDoc
241    {
242       Statement JavaDoc stmQuery = null;
243       try
244       {
245          stmQuery = cntDBConnection.createStatement();
246
247          if (stmQuery.execute("CREATE SEQUENCE BLOG_ID_SEQ " +
248                               "INCREMENT BY 1 START WITH 1 NOCYCLE"))
249          {
250             // Close any results
251
stmQuery.getMoreResults(Statement.CLOSE_ALL_RESULTS);
252          }
253          s_logger.log(Level.FINEST, "Sequence BLOG_ID_SEQ created.");
254          
255          if (stmQuery.execute(
256             "create table BF_BLOG" + NL +
257             "(" + NL +
258             " ID INTEGER NOT NULL," + NL +
259             " DOMAIN_ID INTEGER NOT NULL," + NL +
260             " FOLDER VARCHAR(" + BLOG_FOLDER_MAXLENGTH + ") NOT NULL," + NL +
261             " CAPTION VARCHAR(" + BLOG_CAPTION_MAXLENGTH + ") NOT NULL," + NL +
262             " COMMENTS VARCHAR(" + BLOG_COMMENTS_MAXLENGTH_ORACLE + ") NOT NULL," + NL +
263             " CREATION_DATE TIMESTAMP(9) NOT NULL," + NL +
264             " MODIFICATION_DATE TIMESTAMP(9) NOT NULL," + NL +
265             " CONSTRAINT BF_BLOG_PK PRIMARY KEY (ID)," + NL +
266             // " CONSTRAINT BF_BLOGDOM_FK FOREIGN KEY (DOMAIN_ID)" + NL +
267
// " REFERENCES BF_DOMAIN (ID) ON DELETE CASCADE," + NL +
268
" CONSTRAINT BF_BLOG_FLDR_UQ UNIQUE (FOLDER)" + NL +
269             ")"))
270          {
271             // Close any results
272
stmQuery.getMoreResults(Statement.CLOSE_ALL_RESULTS);
273          }
274          s_logger.log(Level.FINEST, "Table BF_BLOG created.");
275
276          ///////////////////////////////////////////////////////////////////////
277

278          if (stmQuery.execute(
279             "CREATE OR REPLACE PROCEDURE INSERT_BF_BLOG " + NL +
280             "( " + NL +
281             " IN_DOMAIN_ID IN INTEGER, " + NL +
282             " IN_FOLDER IN VARCHAR, " + NL +
283             " IN_CAPTION IN VARCHAR, " + NL +
284             " IN_COMMENTS IN VARCHAR, " + NL +
285             " OUT_KEY OUT INTEGER, " + NL +
286             " OUT_TIMESTAMP OUT TIMESTAMP " + NL +
287             ") " + NL +
288             "IS " + NL +
289             " NEW_OUT_KEY INTEGER; " + NL +
290             " NEW_OUT_TIMESTAMP TIMESTAMP(9); " + NL +
291             "BEGIN " + NL +
292             " SELECT BLOG_ID_SEQ.NEXTVAL INTO NEW_OUT_KEY FROM DUAL;" + NL +
293             " OUT_KEY := NEW_OUT_KEY;" + NL +
294             " SELECT SYSDATE INTO NEW_OUT_TIMESTAMP FROM DUAL;" + NL +
295             " OUT_TIMESTAMP := NEW_OUT_TIMESTAMP;" + NL +
296             " INSERT INTO " + strUserName + ".BF_BLOG(ID, DOMAIN_ID, FOLDER, " + NL +
297             " CAPTION, COMMENTS, CREATION_DATE, MODIFICATION_DATE) " + NL +
298             " VALUES (OUT_KEY, IN_DOMAIN_ID, IN_FOLDER, IN_CAPTION, " + NL +
299             " IN_COMMENTS, OUT_TIMESTAMP, OUT_TIMESTAMP); " + NL +
300             "END;"))
301          {
302             // Close any results
303
stmQuery.getMoreResults(Statement.CLOSE_ALL_RESULTS);
304          }
305          s_logger.log(Level.FINEST, "Procedure INSERT_BF_BLOG created.");
306
307          ///////////////////////////////////////////////////////////////////////
308

309          if (stmQuery.execute(
310             "CREATE OR REPLACE PROCEDURE UPDATE_BF_BLOG " + NL +
311             "( " + NL +
312             " IN_FOLDER IN VARCHAR, " + NL +
313             " IN_CAPTION IN VARCHAR, " + NL +
314             " IN_COMMENTS IN VARCHAR, " + NL +
315             " IN_BLOG_ID IN INTEGER, " + NL +
316             " IN_DOMAIN_ID IN INTEGER, " + NL +
317             " IN_MODIFICATION_DATE IN TIMESTAMP, " + NL +
318             " OUT_TIMESTAMP OUT TIMESTAMP " + NL +
319             ") " + NL +
320             "IS " + NL +
321             " NEW_OUT_TIMESTAMP TIMESTAMP(9); " + NL +
322             "BEGIN " + NL +
323             " SELECT SYSDATE INTO NEW_OUT_TIMESTAMP FROM DUAL; " +
324             " OUT_TIMESTAMP := NEW_OUT_TIMESTAMP; " + NL +
325             " UPDATE " + strUserName + ".BF_BLOG SET FOLDER = IN_FOLDER, " + NL +
326             " CAPTION = IN_CAPTION, COMMENTS = IN_COMMENTS, " + NL +
327             " MODIFICATION_DATE = OUT_TIMESTAMP WHERE ID = IN_BLOG_ID " + NL +
328             " AND DOMAIN_ID = IN_DOMAIN_ID " + NL +
329             " AND MODIFICATION_DATE = IN_MODIFICATION_DATE; " + NL +
330             "END;"))
331          {
332             // Close any results
333
stmQuery.getMoreResults(Statement.CLOSE_ALL_RESULTS);
334          }
335          s_logger.log(Level.FINEST, "Procedure UPDATE_BF_BLOG created.");
336
337          ///////////////////////////////////////////////////////////////////////
338

339          if (stmQuery.execute("CREATE SEQUENCE BLOGENTRY_ID_SEQ " +
340                               "INCREMENT BY 1 START WITH 1 NOCYCLE"))
341          {
342             // Close any results
343
stmQuery.getMoreResults(Statement.CLOSE_ALL_RESULTS);
344          }
345          s_logger.log(Level.FINEST, "Sequence BLOGENTRY_ID_SEQ created.");
346          
347
348          if (stmQuery.execute(
349             "create table BF_BLOG_ENTRY" + NL +
350             "(" + NL +
351             " ID INTEGER NOT NULL," + NL +
352             " DOMAIN_ID INTEGER NOT NULL," + NL +
353             " BLOG_ID INTEGER NOT NULL," + NL +
354             " CAPTION VARCHAR(" + BLOGENTRY_CAPTION_MAXLENGTH + ") NOT NULL," + NL +
355             " COMMENTS VARCHAR(" + BLOGENTRY_COMMENTS_MAXLENGTH_ORACLE + ") NOT NULL," + NL +
356             " IMAGEURL VARCHAR(" + BLOGENTRY_IMAGEURL_MAXLENGTH + ") NOT NULL," + NL +
357             " TARGETURL VARCHAR(" + BLOGENTRY_TARGETURL_MAXLENGTH + ") NOT NULL," + NL +
358             " CREATION_DATE TIMESTAMP(9) NOT NULL," + NL +
359             " MODIFICATION_DATE TIMESTAMP(9) NOT NULL," + NL +
360             " CONSTRAINT BF_BLOGENTR_PK PRIMARY KEY (ID)," + NL +
361             // " CONSTRAINT BF_BLOGENTRDOM_FK FOREIGN KEY (DOMAIN_ID)" + NL +
362
// " REFERENCES BF_DOMAIN (ID) ON DELETE CASCADE," + NL +
363
" CONSTRAINT BF_BLOGENTR_FK FOREIGN KEY (BLOG_ID)" + NL +
364             " REFERENCES BF_BLOG (ID) ON DELETE CASCADE" + NL +
365             ")"))
366          {
367             // Close any results
368
stmQuery.getMoreResults(Statement.CLOSE_ALL_RESULTS);
369          }
370          s_logger.log(Level.FINEST, "Table BF_BLOG_ENTRY created.");
371          
372          ///////////////////////////////////////////////////////////////////////
373

374          if (stmQuery.execute(
375             "CREATE OR REPLACE PROCEDURE INSERT_BF_BLOGENTR" + NL +
376             "(" + NL +
377             " IN_DOMAIN_ID IN INTEGER," + NL +
378             " IN_BLOG_ID IN INTEGER," + NL +
379             " IN_CAPTION IN VARCHAR," + NL +
380             " IN_COMMENTS IN VARCHAR," + NL +
381             " IN_IMAGEURL IN VARCHAR," + NL +
382             " IN_TARGETURL IN VARCHAR," + NL +
383             " OUT_KEY OUT INTEGER," + NL +
384             " OUT_TIMESTAMP OUT TIMESTAMP" + NL +
385             ") " + NL +
386             "IS " + NL +
387             " NEW_OUT_KEY INTEGER; " + NL +
388             " NEW_OUT_TIMESTAMP TIMESTAMP(9); " + NL +
389             "BEGIN " + NL +
390             " SELECT BLOGENTRY_ID_SEQ.NEXTVAL INTO NEW_OUT_KEY FROM DUAL;" + NL +
391             " OUT_KEY := NEW_OUT_KEY;" + NL +
392             " SELECT SYSDATE INTO NEW_OUT_TIMESTAMP FROM DUAL;" + NL +
393             " OUT_TIMESTAMP := NEW_OUT_TIMESTAMP;" + NL +
394             " INSERT INTO " + strUserName + ".BF_BLOG_ENTRY(ID, DOMAIN_ID, BLOG_ID, " + NL +
395             " CAPTION, COMMENTS, IMAGEURL, TARGETURL, CREATION_DATE, MODIFICATION_DATE)" + NL +
396             " VALUES (OUT_KEY, IN_DOMAIN_ID, IN_BLOG_ID, IN_CAPTION, " + NL +
397             " IN_COMMENTS, IN_IMAGEURL, IN_TARGETURL, OUT_TIMESTAMP, OUT_TIMESTAMP);" + NL +
398             "END;"))
399          {
400             // Close any results
401
stmQuery.getMoreResults(Statement.CLOSE_ALL_RESULTS);
402          }
403          s_logger.log(Level.FINEST, "Table INSERT_BF_BLOGENTR created.");
404          
405          ///////////////////////////////////////////////////////////////////////
406

407          if (stmQuery.execute(
408             "CREATE OR REPLACE PROCEDURE UPDATE_BF_BLOGENTR" + NL +
409             "(" + NL +
410             " IN_CAPTION IN VARCHAR," + NL +
411             " IN_COMMENTS IN VARCHAR," + NL +
412             " IN_IMAGEURL IN VARCHAR," + NL +
413             " IN_TARGETURL IN VARCHAR," + NL +
414             " IN_ENTRY_ID IN INTEGER," + NL +
415             " IN_DOMAIN_ID IN INTEGER," + NL +
416             " IN_MODIFICATION_DATE IN TIMESTAMP," + NL +
417             " OUT_TIMESTAMP OUT TIMESTAMP" + NL +
418             ") " + NL +
419             "IS " + NL +
420             " NEW_OUT_TIMESTAMP TIMESTAMP(9); " + NL +
421             "BEGIN " + NL +
422             " SELECT SYSDATE INTO NEW_OUT_TIMESTAMP FROM DUAL; " +
423             " OUT_TIMESTAMP := NEW_OUT_TIMESTAMP; " + NL +
424             " UPDATE " + strUserName + ".BF_BLOG_ENTRY SET CAPTION = IN_CAPTION," + NL +
425             " COMMENTS = IN_COMMENTS, IMAGEURL = IN_IMAGEURL, TARGETURL= IN_TARGETURL," + NL +
426             " MODIFICATION_DATE = OUT_TIMESTAMP WHERE ID = IN_ENTRY_ID " +
427             " AND DOMAIN_ID = IN_DOMAIN_ID " + NL +
428             " AND MODIFICATION_DATE = IN_MODIFICATION_DATE;" + NL +
429             "END;"))
430          {
431             // Close any results
432
stmQuery.getMoreResults(Statement.CLOSE_ALL_RESULTS);
433          }
434          s_logger.log(Level.FINEST, "Table UPDATE_BF_BLOGENTR created.");
435       }
436       catch (SQLException JavaDoc sqleExc)
437       {
438          s_logger.log(Level.WARNING,
439                       "Failed to create schema " + BLOG_SCHEMA_NAME, sqleExc);
440          throw sqleExc;
441       }
442       finally
443       {
444          DatabaseUtils.closeStatement(stmQuery);
445       }
446    }
447
448    /**
449     * {@inheritDoc}
450     */

451    public String JavaDoc getInsertBlogAndFetchGeneratedValues(
452    ) throws OSSException
453    {
454       return "{call INSERT_BF_BLOG (?, ?, ?, ?, ?, ?)}";
455    }
456
457    /**
458     * {@inheritDoc}
459     */

460    public String JavaDoc getUpdateBlogAndFetchGeneratedValues(
461    ) throws OSSException
462    {
463       return "{call UPDATE_BF_BLOG (?, ?, ?, ?, ?, ?, ?)}";
464    }
465
466    /**
467     * {@inheritDoc}
468     */

469    public String JavaDoc getInsertBlog(
470    ) throws OSSException
471    {
472       StringBuffer JavaDoc buffer = new StringBuffer JavaDoc();
473       
474       // MySQL requires for AUTO_INCREMENT columns to specify ID and pass null as a value
475
buffer.append("INSERT INTO BF_BLOG(");
476       buffer.append(BLOG_COLUMNS);
477       buffer.append(") VALUES (BLOG_ID_SEQ.NEXTVAL, ?, ?, ?, ?, ");
478       buffer.append(DatabaseImpl.getInstance().getCurrentTimestampFunctionCall());
479       buffer.append(",");
480       buffer.append(DatabaseImpl.getInstance().getCurrentTimestampFunctionCall());
481       buffer.append(")");
482
483       return buffer.toString();
484    }
485
486    /**
487     * {@inheritDoc}
488     */

489    public String JavaDoc getInsertEntryAndFetchGeneratedValues(
490    ) throws OSSException
491    {
492       return "{call INSERT_BF_BLOGENTR (?, ?, ?, ?, ?, ?, ?, ?)}";
493    }
494
495    /**
496     * {@inheritDoc}
497     */

498    public String JavaDoc getUpdateEntryAndFetchGeneratedValues(
499    ) throws OSSException
500    {
501       return "{call UPDATE_BF_BLOGENTR (?, ?, ?, ?, ?, ?, ?, ?)}";
502    }
503
504    /**
505     * {@inheritDoc}
506     */

507    public String JavaDoc getInsertEntry(
508    ) throws OSSException
509    {
510       StringBuffer JavaDoc buffer = new StringBuffer JavaDoc();
511       
512       // MySQL requires for AUTO_INCREMENT columns to specify ID and pass null as a value
513
buffer.append("INSERT INTO BF_BLOG_ENTRY(");
514       buffer.append(ENTRY_COLUMNS);
515       buffer.append(") VALUES (BLOGENTRY_ID_SEQ.NEXTVAL, ?, ?, ?, ?, ?, ?, ");
516       buffer.append(DatabaseImpl.getInstance().getCurrentTimestampFunctionCall());
517       buffer.append(",");
518       buffer.append(DatabaseImpl.getInstance().getCurrentTimestampFunctionCall());
519       buffer.append(")");
520
521       return buffer.toString();
522    }
523 }
524
Popular Tags