KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > mvnforum > db > jdbc > MemberTutorDAOImplJDBC


1 /*
2  * $Header: /cvsroot/mvnforum/mvnforum/src/com/mvnforum/db/jdbc/MemberTutorDAOImplJDBC.java,v 1.16 2006/04/14 17:05:26 minhnn Exp $
3  * $Author: minhnn $
4  * $Revision: 1.16 $
5  * $Date: 2006/04/14 17:05:26 $
6  *
7  * ====================================================================
8  *
9  * Copyright (C) 2002-2006 by MyVietnam.net
10  *
11  * All copyright notices regarding mvnForum MUST remain
12  * intact in the scripts and in the outputted HTML.
13  * The "powered by" text/logo with a link back to
14  * http://www.mvnForum.com and http://www.MyVietnam.net in
15  * the footer of the pages MUST remain visible when the pages
16  * are viewed on the internet or intranet.
17  *
18  * This program is free software; you can redistribute it and/or modify
19  * it under the terms of the GNU General Public License as published by
20  * the Free Software Foundation; either version 2 of the License, or
21  * any later version.
22  *
23  * This program is distributed in the hope that it will be useful,
24  * but WITHOUT ANY WARRANTY; without even the implied warranty of
25  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26  * GNU General Public License for more details.
27  *
28  * You should have received a copy of the GNU General Public License
29  * along with this program; if not, write to the Free Software
30  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
31  *
32  * Support can be obtained from support forums at:
33  * http://www.mvnForum.com/mvnforum/index
34  *
35  * Correspondence and Marketing Questions can be sent to:
36  * info at MyVietnam net
37  *
38  * @author: Minh Nguyen
39  * @author: Mai Nguyen
40  */

41 package com.mvnforum.db.jdbc;
42
43 import java.sql.*;
44 import java.util.ArrayList JavaDoc;
45 import java.util.Collection JavaDoc;
46
47 import com.mvnforum.db.*;
48 import net.myvietnam.mvncore.db.DBUtils;
49 import net.myvietnam.mvncore.exception.*;
50 import org.apache.commons.logging.Log;
51 import org.apache.commons.logging.LogFactory;
52
53 public class MemberTutorDAOImplJDBC implements MemberTutorDAO {
54
55     private static Log log = LogFactory.getLog(MemberTutorDAOImplJDBC.class);
56
57     // this variable will support caching if cache for this class is needed
58
private static boolean m_dirty = true;
59
60     public MemberTutorDAOImplJDBC() {
61     }
62
63     protected static boolean isDirty() {
64         return m_dirty;
65     }
66
67     protected static void setDirty(boolean dirty) {
68         m_dirty = dirty;
69     }
70
71     // This function should be in MemberDAOImplJDBC
72
/*
73      * Included columns: MemberID, MemberName, MemberEmail, MemberEmailVisible, MemberNameVisible,
74      * MemberViewCount, MemberPostCount, MemberCreationDate, MemberLastLogon, MemberOption,
75      * MemberStatus, MemberWarnCount, MemberVoteCount, MemberVoteTotalStars, MemberRewardPoints,
76      * MemberTitle, MemberSignature, MemberAvatar, MemberFirstname, MemberLastname,
77      * MemberGender, MemberBirthday, MemberAddress, MemberCity, MemberState,
78      * MemberCountry, MemberPhone, MemberMobile, MemberFax, MemberCareer,
79      * MemberHomepage, MemberYahoo, MemberAol, MemberIcq, MemberMsn,
80      * MemberCoolLink1, MemberCoolLink2
81      * as of 10 March, add MemberActivateCode
82      * Excluded columns: MemberPassword, MemberFirstEmail, MemberFirstIP, MemberLastIP, MemberModifiedDate,
83      * MemberTempPassword, MemberMessageCount, MemberMessageOption, MemberPostsPerPage,
84      * MemberTimeZone, MemberSkin, MemberLanguage
85      */

86
87     public Collection JavaDoc getBeans(int offset, int rowsToReturn)
88         throws DatabaseException {
89
90         if (DBUtils.getDatabaseType() != DBUtils.DATABASE_MYSQL) {
91             throw new IllegalStateException JavaDoc("Currently only support MySql");
92         }
93         Connection connection = null;
94         PreparedStatement statement = null;
95         ResultSet resultSet = null;
96         Collection JavaDoc retValue = new ArrayList JavaDoc();
97         StringBuffer JavaDoc sql = new StringBuffer JavaDoc(512);
98
99         sql.append("SELECT " + MemberDAO.TABLE_NAME + ".* FROM " + MemberDAO.TABLE_NAME);
100         sql.append(" LEFT JOIN " + TABLE_NAME + " ON " + MemberDAO.TABLE_NAME + ".MemberID = " + TABLE_NAME + ".MemberID ");
101         sql.append(" WHERE " + TABLE_NAME + ".MemberID IS NULL");
102         sql.append(" LIMIT ?, ? ");
103
104         try {
105             connection = DBUtils.getConnection();
106             statement = connection.prepareStatement(sql.toString());
107             statement.setInt(1, offset);
108             statement.setInt(2, rowsToReturn);
109             resultSet = statement.executeQuery();
110
111             while (resultSet.next()) {
112                 MemberBean bean = new MemberBean();
113                 bean.setMemberID(resultSet.getInt("MemberID"));
114                 bean.setMemberName(resultSet.getString("MemberName"));
115                 bean.setMemberEmail(resultSet.getString("MemberEmail"));
116                 bean.setMemberEmailVisible(resultSet.getInt("MemberEmailVisible"));
117                 bean.setMemberNameVisible(resultSet.getInt("MemberNameVisible"));
118                 bean.setMemberViewCount(resultSet.getInt("MemberViewCount"));
119                 bean.setMemberPostCount(resultSet.getInt("MemberPostCount"));
120                 bean.setMemberCreationDate(resultSet.getTimestamp("MemberCreationDate"));
121                 bean.setMemberLastLogon(resultSet.getTimestamp("MemberLastLogon"));
122                 bean.setMemberOption(resultSet.getInt("MemberOption"));
123                 bean.setMemberStatus(resultSet.getInt("MemberStatus"));
124                 bean.setMemberWarnCount(resultSet.getInt("MemberWarnCount"));
125                 bean.setMemberVoteCount(resultSet.getInt("MemberVoteCount"));
126                 bean.setMemberVoteTotalStars(resultSet.getInt("MemberVoteTotalStars"));
127                 bean.setMemberRewardPoints(resultSet.getInt("MemberRewardPoints"));
128                 bean.setMemberTitle(resultSet.getString("MemberTitle"));
129                 bean.setMemberSignature(resultSet.getString("MemberSignature"));
130                 bean.setMemberAvatar(resultSet.getString("MemberAvatar"));
131                 bean.setMemberFirstname(resultSet.getString("MemberFirstname"));
132                 bean.setMemberLastname(resultSet.getString("MemberLastname"));
133                 bean.setMemberGender(resultSet.getInt("MemberGender"));
134                 bean.setMemberBirthday(resultSet.getDate("MemberBirthday"));
135                 bean.setMemberAddress(resultSet.getString("MemberAddress"));
136                 bean.setMemberCity(resultSet.getString("MemberCity"));
137                 bean.setMemberState(resultSet.getString("MemberState"));
138                 bean.setMemberCountry(resultSet.getString("MemberCountry"));
139                 bean.setMemberPhone(resultSet.getString("MemberPhone"));
140                 bean.setMemberMobile(resultSet.getString("MemberMobile"));
141                 bean.setMemberFax(resultSet.getString("MemberFax"));
142                 bean.setMemberCareer(resultSet.getString("MemberCareer"));
143                 bean.setMemberHomepage(resultSet.getString("MemberHomepage"));
144                 bean.setMemberYahoo(resultSet.getString("MemberYahoo"));
145                 bean.setMemberAol(resultSet.getString("MemberAol"));
146                 bean.setMemberIcq(resultSet.getString("MemberIcq"));
147                 bean.setMemberMsn(resultSet.getString("MemberMsn"));
148                 bean.setMemberCoolLink1(resultSet.getString("MemberCoolLink1"));
149                 bean.setMemberCoolLink2(resultSet.getString("MemberCoolLink2"));
150                 bean.setMemberActivateCode(resultSet.getString("MemberActivateCode"));
151                 retValue.add(bean);
152             }
153             return retValue;
154         } catch(SQLException sqle) {
155             log.error("Sql Execution Error!", sqle);
156             throw new DatabaseException("Error executing SQL in MemberTutorDAOImplJDBC.getBeans.");
157         } finally {
158             DBUtils.closeResultSet(resultSet);
159             DBUtils.closeStatement(statement);
160             DBUtils.closeConnection(connection);
161         }
162     }
163
164     public void findByPrimaryKey(int memberID)
165         throws ObjectNotFoundException, DatabaseException {
166
167         Connection connection = null;
168         PreparedStatement statement = null;
169         ResultSet resultSet = null;
170         StringBuffer JavaDoc sql = new StringBuffer JavaDoc(512);
171         sql.append("SELECT MemberID");
172         sql.append(" FROM " + TABLE_NAME);
173         sql.append(" WHERE MemberID = ?");
174         try {
175             connection = DBUtils.getConnection();
176             statement = connection.prepareStatement(sql.toString());
177             statement.setInt(1, memberID);
178             resultSet = statement.executeQuery();
179             if (!resultSet.next()) {
180                 throw new ObjectNotFoundException("Cannot find the primary key (" + memberID + ") in table 'MemberTutor'.");
181             }
182         } catch(SQLException sqle) {
183             log.error("Sql Execution Error!", sqle);
184             throw new DatabaseException("Error executing SQL in MemberTutorDAOImplJDBC.findByPrimaryKey.");
185         } finally {
186             DBUtils.closeResultSet(resultSet);
187             DBUtils.closeStatement(statement);
188             DBUtils.closeConnection(connection);
189         }
190     }
191     /*
192     public void findByPrimaryKey2(int memberID, int tutorID)
193         throws DatabaseException, DuplicateKeyException {
194
195         Connection connection = null;
196         PreparedStatement statement = null;
197         ResultSet resultSet = null;
198         StringBuffer sql = new StringBuffer(512);
199         sql.append("SELECT MemberID");
200         sql.append(" FROM " + TABLE_NAME);
201         sql.append(" WHERE MemberID = ? and TutorID= ?");
202         try {
203             connection = DBUtils.getConnection();
204             statement = connection.prepareStatement(sql.toString());
205             statement.setInt(1, memberID);
206             statement.setInt(2, tutorID);
207             resultSet = statement.executeQuery();
208             if (resultSet.next()) {
209                 throw new DuplicateKeyException("Cannot find the primary key (" + memberID + ") in table 'MemberTutor'.");
210             }
211         } catch(SQLException sqle) {
212             log.error("Sql Execution Error!", sqle);
213             throw new DatabaseException("Error executing SQL in MemberTutorDAOImplJDBC.findByPrimaryKey2.");
214         } finally {
215             DBUtils.closeResultSet(resultSet);
216             DBUtils.closeStatement(statement);
217             DBUtils.closeConnection(connection);
218         }
219     }*/

220
221     public void findByAlternateKey_MemberName(String JavaDoc memberName)
222         throws ObjectNotFoundException, DatabaseException {
223
224         Connection connection = null;
225         PreparedStatement statement = null;
226         ResultSet resultSet = null;
227         StringBuffer JavaDoc sql = new StringBuffer JavaDoc(512);
228         sql.append("SELECT MemberName");
229         sql.append(" FROM " + TABLE_NAME);
230         sql.append(" WHERE MemberName = ?");
231         try {
232             connection = DBUtils.getConnection();
233             statement = connection.prepareStatement(sql.toString());
234             statement.setString(1, memberName);
235             resultSet = statement.executeQuery();
236             if (!resultSet.next()) {
237                 throw new ObjectNotFoundException("Cannot find the alternate key [MemberName] (" + memberName + ") in table 'MemberTutor'.");
238             }
239         } catch(SQLException sqle) {
240             log.error("Sql Execution Error!", sqle);
241             throw new DatabaseException("Error executing SQL in MemberTutorDAOImplJDBC.findByAlternateKey_MemberName.");
242         } finally {
243             DBUtils.closeResultSet(resultSet);
244             DBUtils.closeStatement(statement);
245             DBUtils.closeConnection(connection);
246         }
247     }
248
249     /* This method is used to specify collection of member belong to one tutor
250      *
251      */

252     public Collection JavaDoc getMembers_inTutor(int tutorID)
253         throws DatabaseException {
254
255         Connection connection = null;
256         PreparedStatement statement = null;
257         ResultSet resultSet = null;
258         Collection JavaDoc retValue = new ArrayList JavaDoc();
259         StringBuffer JavaDoc sql = new StringBuffer JavaDoc(512);
260         sql.append("SELECT MemberID, MemberName, TutorID, TutorName, CreationDate, ExpireDate, RelationType, RelationOption, RelationStatus");
261         sql.append(" FROM " + TABLE_NAME);
262         sql.append(" WHERE TutorID = ?");
263         //sql.append(" ORDER BY ColumnName ASC|DESC "); // @todo: uncomment as needed
264
try {
265             connection = DBUtils.getConnection();
266             statement = connection.prepareStatement(sql.toString());
267             statement.setInt(1, tutorID);
268             resultSet = statement.executeQuery();
269             while (resultSet.next()) {
270                 MemberTutorBean bean = new MemberTutorBean();
271                 bean.setMemberID(resultSet.getInt("MemberID"));
272                 bean.setMemberName(resultSet.getString("MemberName"));
273                 bean.setTutorID(resultSet.getInt("TutorID"));
274                 bean.setTutorName(resultSet.getString("TutorName"));
275                 bean.setCreationDate(resultSet.getTimestamp("CreationDate"));
276                 bean.setExpireDate(resultSet.getTimestamp("ExpireDate"));
277                 bean.setRelationType(resultSet.getInt("RelationType"));
278                 bean.setRelationOption(resultSet.getInt("RelationOption"));
279                 bean.setRelationStatus(resultSet.getInt("RelationStatus"));
280                 retValue.add(bean);
281             }
282             return retValue;
283         } catch(SQLException sqle) {
284             log.error("Sql Execution Error!", sqle);
285             throw new DatabaseException("Error executing SQL in MemberTutorDAOImplJDBC.getMembers_inTutor.");
286         } finally {
287             DBUtils.closeResultSet(resultSet);
288             DBUtils.closeStatement(statement);
289             DBUtils.closeConnection(connection);
290         }
291     }
292
293     /*
294      * Included columns: MemberID, MemberName, TutorID, TutorName, CreationDate,
295      * ExpireDate, RelationType, RelationOption, RelationStatus
296      * Excluded columns:
297      */

298     public void create(int memberID, String JavaDoc memberName, int tutorID,
299                        String JavaDoc tutorName, Timestamp creationDate, Timestamp expireDate,
300                        int relationType, int relationOption, int relationStatus)
301         throws CreateException, DatabaseException, DuplicateKeyException, ForeignKeyNotFoundException {
302
303         // @todo: comment this try-catch block if the needed columns dont have attribute 'include'
304
// If this is the case, then it is highly recommended that you regenerate this method with the attribute 'include' turned on
305
// However, if primary key is a auto_increament column, then you can safely delete this block
306
try {
307             //Check if primary key already exists
308
findByPrimaryKey(memberID);
309             //If so, then we have to throw an exception
310
throw new DuplicateKeyException("Primary key already exists. Cannot create new MemberTutor with the same [MemberID] (" + memberID + ").");
311         } catch(ObjectNotFoundException e) {
312             //Otherwise we can go ahead
313
}
314
315         // @todo: Comment this try-catch block if the needed columns dont have attribute 'include'
316
// If this is the case, then it is highly recommended that you regenerate this method with the attribute 'include' turned on
317
try {
318             //Check if alternate key already exists
319
findByAlternateKey_MemberName(memberName);
320             //If so, then we have to throw an exception
321
throw new DuplicateKeyException("Alternate key already exists. Cannot create new MemberTutor with the same [MemberName] (" + memberName + ").");
322         } catch(ObjectNotFoundException e) {
323             //Otherwise we can go ahead
324
}
325         try {
326             // @todo: modify the parameter list as needed
327
// You may have to regenerate this method if the needed columns dont have attribute 'include'
328
DAOFactory.getMemberDAO().findByPrimaryKey(memberID);
329         } catch(ObjectNotFoundException e) {
330             throw new ForeignKeyNotFoundException("Foreign key [MemberID] refers to table 'Member' does not exist. Cannot create new MemberTutor.");
331         }
332
333         try {
334             // @todo: modify the parameter list as needed
335
// You may have to regenerate this method if the needed columns dont have attribute 'include'
336
DAOFactory.getMemberDAO().findByPrimaryKey(tutorID);
337         } catch(ObjectNotFoundException e) {
338             throw new ForeignKeyNotFoundException("Foreign key [TutorID] refers to table 'Member' does not exist. Cannot create new MemberTutor.");
339         }
340
341         Connection connection = null;
342         PreparedStatement statement = null;
343         StringBuffer JavaDoc sql = new StringBuffer JavaDoc(512);
344         sql.append("INSERT INTO " + TABLE_NAME + " (MemberID, MemberName, TutorID, TutorName, CreationDate, ExpireDate, RelationType, RelationOption, RelationStatus)");
345         sql.append(" VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)");
346         try {
347             connection = DBUtils.getConnection();
348             statement = connection.prepareStatement(sql.toString());
349
350             statement.setInt(1, memberID);
351             statement.setString(2, memberName);
352             statement.setInt(3, tutorID);
353             statement.setString(4, tutorName);
354             statement.setTimestamp(5, creationDate);
355             statement.setTimestamp(6, expireDate);
356             statement.setInt(7, relationType);
357             statement.setInt(8, relationOption);
358             statement.setInt(9, relationStatus);
359
360             if (statement.executeUpdate() != 1) {
361                 throw new CreateException("Error adding a row into table 'MemberTutor'.");
362             }
363             m_dirty = true;
364         } catch(SQLException sqle) {
365             log.error("Sql Execution Error!", sqle);
366             throw new DatabaseException("Error executing SQL in MemberTutorDAOImplJDBC.create.");
367         } finally {
368             DBUtils.closeStatement(statement);
369             DBUtils.closeConnection(connection);
370         }
371     }
372
373     public void delete(int memberID)
374         throws DatabaseException, ObjectNotFoundException {
375
376         Connection connection = null;
377         PreparedStatement statement = null;
378         StringBuffer JavaDoc sql = new StringBuffer JavaDoc(512);
379         sql.append("DELETE FROM " + TABLE_NAME);
380         sql.append(" WHERE MemberID = ?");
381
382         try {
383             connection = DBUtils.getConnection();
384             statement = connection.prepareStatement(sql.toString());
385             statement.setInt(1, memberID);
386             if (statement.executeUpdate() != 1) {
387                 throw new ObjectNotFoundException("Cannot delete a row in table MemberTutor where primary key = (" + memberID + ").");
388             }
389             m_dirty = true;
390         } catch(SQLException sqle) {
391             log.error("Sql Execution Error!", sqle);
392             throw new DatabaseException("Error executing SQL in MemberTutorDAOImplJDBC.delete.");
393         } finally {
394             DBUtils.closeStatement(statement);
395             DBUtils.closeConnection(connection);
396         }
397     }
398
399     public void deleteMembers_inTutor(int tutorID)
400         throws DatabaseException {
401
402         Connection connection = null;
403         PreparedStatement statement = null;
404         StringBuffer JavaDoc sql = new StringBuffer JavaDoc(512);
405         sql.append("DELETE FROM " + TABLE_NAME);
406         sql.append(" WHERE TutorID = ?");
407
408         try {
409             connection = DBUtils.getConnection();
410             statement = connection.prepareStatement(sql.toString());
411             statement.setInt(1, tutorID);
412             statement.executeUpdate();
413             m_dirty = true;
414         } catch(SQLException sqle) {
415             log.error("Sql Execution Error!", sqle);
416             throw new DatabaseException("Error executing SQL in MemberTutorDAOImplJDBC.deleteMembers_inTutor.");
417         } finally {
418             DBUtils.closeStatement(statement);
419             DBUtils.closeConnection(connection);
420         }
421     }
422
423     /*
424      * Included columns: MemberID, MemberName, TutorID, TutorName, CreationDate,
425      * ExpireDate, RelationType, RelationOption, RelationStatus
426      * Excluded columns:
427      */

428     public MemberTutorBean getBean(int memberID)
429         throws ObjectNotFoundException, DatabaseException {
430
431         Connection connection = null;
432         PreparedStatement statement = null;
433         ResultSet resultSet = null;
434         StringBuffer JavaDoc sql = new StringBuffer JavaDoc(512);
435         sql.append("SELECT MemberID, MemberName, TutorID, TutorName, CreationDate, ExpireDate, RelationType, RelationOption, RelationStatus");
436         sql.append(" FROM " + TABLE_NAME);
437         sql.append(" WHERE MemberID = ?");
438         try {
439             connection = DBUtils.getConnection();
440             statement = connection.prepareStatement(sql.toString());
441             statement.setInt(1, memberID);
442             resultSet = statement.executeQuery();
443             if(!resultSet.next()) {
444                 throw new ObjectNotFoundException("Cannot find the row in table MemberTutor where primary key = (" + memberID + ").");
445             }
446
447             MemberTutorBean bean = new MemberTutorBean();
448             // @todo: uncomment the following line(s) as needed
449
//bean.setMemberID(memberID);
450
bean.setMemberID(resultSet.getInt("MemberID"));
451             bean.setMemberName(resultSet.getString("MemberName"));
452             bean.setTutorID(resultSet.getInt("TutorID"));
453             bean.setTutorName(resultSet.getString("TutorName"));
454             bean.setCreationDate(resultSet.getTimestamp("CreationDate"));
455             bean.setExpireDate(resultSet.getTimestamp("ExpireDate"));
456             bean.setRelationType(resultSet.getInt("RelationType"));
457             bean.setRelationOption(resultSet.getInt("RelationOption"));
458             bean.setRelationStatus(resultSet.getInt("RelationStatus"));
459             return bean;
460         } catch(SQLException sqle) {
461             log.error("Sql Execution Error!", sqle);
462             throw new DatabaseException("Error executing SQL in MemberTutorDAOImplJDBC.getBean(pk).");
463         } finally {
464             DBUtils.closeResultSet(resultSet);
465             DBUtils.closeStatement(statement);
466             DBUtils.closeConnection(connection);
467         }
468     }
469
470     /*
471      * Included columns: MemberID, MemberName, TutorID, TutorName, CreationDate,
472      * ExpireDate, RelationType, RelationOption, RelationStatus
473      * Excluded columns:
474      */

475     public Collection JavaDoc getBeans_inTutor_limit(int tutorID, int offset, int rowsToReturn)
476         throws IllegalArgumentException JavaDoc, DatabaseException {
477         if (offset < 0) throw new IllegalArgumentException JavaDoc("The offset < 0 is not allowed.");
478         if (rowsToReturn <= 0) throw new IllegalArgumentException JavaDoc("The rowsToReturn <= 0 is not allowed.");
479
480         Connection connection = null;
481         PreparedStatement statement = null;
482         ResultSet resultSet = null;
483         Collection JavaDoc retValue = new ArrayList JavaDoc();
484         StringBuffer JavaDoc sql = new StringBuffer JavaDoc(512);
485         sql.append("SELECT MemberID, MemberName, TutorID, TutorName, CreationDate, ExpireDate, RelationType, RelationOption, RelationStatus");
486         sql.append(" FROM " + TABLE_NAME);
487         sql.append(" WHERE TutorID = ?");
488         //sql.append(" ORDER BY ColumnName ASC|DESC "); // @todo: uncomment as needed
489
sql.append(" LIMIT ?, ?");
490         try {
491             connection = DBUtils.getConnection();
492             statement = connection.prepareStatement(sql.toString());
493             statement.setInt(1, tutorID);
494             statement.setInt(2, offset);
495             statement.setInt(3, rowsToReturn);
496             resultSet = statement.executeQuery();
497             while (resultSet.next()) {
498                 MemberTutorBean bean = new MemberTutorBean();
499                 bean.setMemberID(resultSet.getInt("MemberID"));
500                 bean.setMemberName(resultSet.getString("MemberName"));
501                 bean.setTutorID(resultSet.getInt("TutorID"));
502                 bean.setTutorName(resultSet.getString("TutorName"));
503                 bean.setCreationDate(resultSet.getTimestamp("CreationDate"));
504                 bean.setExpireDate(resultSet.getTimestamp("ExpireDate"));
505                 bean.setRelationType(resultSet.getInt("RelationType"));
506                 bean.setRelationOption(resultSet.getInt("RelationOption"));
507                 bean.setRelationStatus(resultSet.getInt("RelationStatus"));
508                 retValue.add(bean);
509             }
510             return retValue;
511         } catch(SQLException sqle) {
512             log.error("Sql Execution Error!", sqle);
513             throw new DatabaseException("Error executing SQL in MemberTutorDAOImplJDBC.getBeans_inTutor_limit.");
514         } finally {
515             DBUtils.closeResultSet(resultSet);
516             DBUtils.closeStatement(statement);
517             DBUtils.closeConnection(connection);
518         }
519     }
520
521     public int getNumberOfMembers()
522         throws AssertionException, DatabaseException {
523
524         if (DBUtils.getDatabaseType() != DBUtils.DATABASE_MYSQL) {
525             throw new IllegalStateException JavaDoc("Currently only support MySql");
526         }
527         Connection connection = null;
528         PreparedStatement statement = null;
529         ResultSet resultSet = null;
530         StringBuffer JavaDoc sql = new StringBuffer JavaDoc(512);
531         sql.append("SELECT COUNT(" + MemberDAO.TABLE_NAME + ".MemberID) FROM " + MemberDAO.TABLE_NAME);
532         sql.append(" LEFT JOIN " + TABLE_NAME + " ON " + MemberDAO.TABLE_NAME + ".MemberID = " + TABLE_NAME + ".MemberID ");
533         sql.append(" WHERE " + TABLE_NAME + ".MemberID IS NULL");
534         try {
535             connection = DBUtils.getConnection();
536             statement = connection.prepareStatement(sql.toString());
537             resultSet = statement.executeQuery();
538             if (!resultSet.next()) {
539                 throw new AssertionException("Assertion in MemberTutorDAOImplJDBC.getNumberOfMember.");
540             }
541             return resultSet.getInt(1);
542         } catch(SQLException sqle) {
543             log.error("Sql Execution Error!", sqle);
544             throw new DatabaseException("Error executing SQL in MemberTutorDAOImplJDBC.getNumberOfMembers.");
545         } finally {
546             DBUtils.closeResultSet(resultSet);
547             DBUtils.closeStatement(statement);
548             DBUtils.closeConnection(connection);
549         }
550     }
551
552     public int getNumberOfBeans_inTutor(int tutorID)
553         throws AssertionException, DatabaseException {
554
555         Connection connection = null;
556         PreparedStatement statement = null;
557         ResultSet resultSet = null;
558         StringBuffer JavaDoc sql = new StringBuffer JavaDoc(512);
559         sql.append("SELECT Count(*)");
560         sql.append(" FROM " + TABLE_NAME);
561         sql.append(" WHERE TutorID = ?");
562         try {
563             connection = DBUtils.getConnection();
564             statement = connection.prepareStatement(sql.toString());
565             statement.setInt(1, tutorID);
566             resultSet = statement.executeQuery();
567             if (!resultSet.next()) {
568                 throw new AssertionException("Assertion in MemberTutorDAOImplJDBC.getNumberOfBeans_inTutor.");
569             }
570             return resultSet.getInt(1);
571         } catch(SQLException sqle) {
572             log.error("Sql Execution Error!", sqle);
573             throw new DatabaseException("Error executing SQL in MemberTutorDAOImplJDBC.getNumberOfBeans_inTutor.");
574         } finally {
575             DBUtils.closeResultSet(resultSet);
576             DBUtils.closeStatement(statement);
577             DBUtils.closeConnection(connection);
578         }
579     }
580
581     /*
582      * Included columns: MemberID, MemberName, TutorID, TutorName, CreationDate,
583      * ExpireDate, RelationType, RelationOption, RelationStatus
584      * Excluded columns:
585      */

586     public Collection JavaDoc getBeans_inExpire_limit(Timestamp expireDate, int offset, int rowsToReturn)
587         throws IllegalArgumentException JavaDoc, DatabaseException {
588         if (offset < 0) throw new IllegalArgumentException JavaDoc("The offset < 0 is not allowed.");
589         if (rowsToReturn <= 0) throw new IllegalArgumentException JavaDoc("The rowsToReturn <= 0 is not allowed.");
590
591         Connection connection = null;
592         PreparedStatement statement = null;
593         ResultSet resultSet = null;
594         Collection JavaDoc retValue = new ArrayList JavaDoc();
595         StringBuffer JavaDoc sql = new StringBuffer JavaDoc(512);
596         sql.append("SELECT MemberID, MemberName, TutorID, TutorName, CreationDate, ExpireDate, RelationType, RelationOption, RelationStatus");
597         sql.append(" FROM " + TABLE_NAME);
598         sql.append(" WHERE ExpireDate <= ?");
599         //sql.append(" ORDER BY ColumnName ASC|DESC "); // @todo: uncomment as needed
600
sql.append(" LIMIT ?, ?");
601         try {
602             connection = DBUtils.getConnection();
603             statement = connection.prepareStatement(sql.toString());
604             statement.setTimestamp(1, expireDate);
605             statement.setInt(2, offset);
606             statement.setInt(3, rowsToReturn);
607             resultSet = statement.executeQuery();
608             while (resultSet.next()) {
609                 MemberTutorBean bean = new MemberTutorBean();
610                 bean.setMemberID(resultSet.getInt("MemberID"));
611                 bean.setMemberName(resultSet.getString("MemberName"));
612                 bean.setTutorID(resultSet.getInt("TutorID"));
613                 bean.setTutorName(resultSet.getString("TutorName"));
614                 bean.setCreationDate(resultSet.getTimestamp("CreationDate"));
615                 bean.setExpireDate(resultSet.getTimestamp("ExpireDate"));
616                 bean.setRelationType(resultSet.getInt("RelationType"));
617                 bean.setRelationOption(resultSet.getInt("RelationOption"));
618                 bean.setRelationStatus(resultSet.getInt("RelationStatus"));
619                 retValue.add(bean);
620             }
621             return retValue;
622         } catch(SQLException sqle) {
623             log.error("Sql Execution Error!", sqle);
624             throw new DatabaseException("Error executing SQL in MemberTutorDAOImplJDBC.getBeans_inExpire_limit.");
625         } finally {
626             DBUtils.closeResultSet(resultSet);
627             DBUtils.closeStatement(statement);
628             DBUtils.closeConnection(connection);
629         }
630     }
631
632     public int getNumberOfBeans_inExpire(Timestamp expireDate)
633         throws AssertionException, DatabaseException {
634
635         Connection connection = null;
636         PreparedStatement statement = null;
637         ResultSet resultSet = null;
638         StringBuffer JavaDoc sql = new StringBuffer JavaDoc(512);
639         sql.append("SELECT Count(*)");
640         sql.append(" FROM " + TABLE_NAME);
641         sql.append(" WHERE ExpireDate <= ?");
642         try {
643             connection = DBUtils.getConnection();
644             statement = connection.prepareStatement(sql.toString());
645             statement.setTimestamp(1, expireDate);
646             resultSet = statement.executeQuery();
647             if (!resultSet.next()) {
648                 throw new AssertionException("Assertion in MemberTutorDAOImplJDBC.getNumberOfBeans_inExpire.");
649             }
650             return resultSet.getInt(1);
651         } catch(SQLException sqle) {
652             log.error("Sql Execution Error!", sqle);
653             throw new DatabaseException("Error executing SQL in MemberTutorDAOImplJDBC.getNumberOfBeans_inExpire.");
654         } finally {
655             DBUtils.closeResultSet(resultSet);
656             DBUtils.closeStatement(statement);
657             DBUtils.closeConnection(connection);
658         }
659     }
660
661     /*
662      * Included columns: MemberID, CreationDate, ExpireDate
663      * Excluded columns: MemberName, TutorID, TutorName, RelationType, RelationOption,
664      * RelationStatus
665      */

666     public void updateMember_expireDate(int memberID, // primary key
667
Timestamp expireDate)
668         throws ObjectNotFoundException, DatabaseException/*, DuplicateKeyException*/ {
669
670         //MemberTutorBean bean = getBean(memberID); // @todo: comment or delete this line if no alternate key are included
671

672         Connection connection = null;
673         PreparedStatement statement = null;
674         StringBuffer JavaDoc sql = new StringBuffer JavaDoc(512);
675         sql.append("UPDATE " + TABLE_NAME + " SET ExpireDate = ?");
676         sql.append(" WHERE MemberID = ?");
677         try {
678             connection = DBUtils.getConnection();
679             statement = connection.prepareStatement(sql.toString());
680
681             // // column(s) to update
682
statement.setTimestamp(1, expireDate);
683
684             // primary key column(s)
685
statement.setInt(2, memberID);
686
687             if (statement.executeUpdate() != 1) {
688                 throw new ObjectNotFoundException("Cannot update table MemberTutor where primary key = (" + memberID + ").");
689             }
690             m_dirty = true;
691         } catch(SQLException sqle) {
692             log.error("Sql Execution Error!", sqle);
693             throw new DatabaseException("Error executing SQL in MemberTutorDAOImplJDBC.updateMember_expireDate.");
694         } finally {
695             DBUtils.closeStatement(statement);
696             DBUtils.closeConnection(connection);
697         }
698     }
699
700 }// end of class MemberTutorDAOImplJDBC
701
Popular Tags