001: /*
002: * $Header: /cvsroot/mvnforum/mvnforum/contrib/phpbb2mvnforum/src/org/mvnforum/phpbb2mvnforum/db/jdbc/MemberDAOImpl.java,v 1.13 2007/12/18 04:58:44 minhnn Exp $
003: * $Author: minhnn $
004: * $Revision: 1.13 $
005: * $Date: 2007/12/18 04:58:44 $
006: *
007: * ====================================================================
008: *
009: * Copyright (C) 2002-2007 by MyVietnam.net
010: *
011: * All copyright notices regarding mvnForum MUST remain
012: * intact in the scripts and in the outputted HTML.
013: * The "powered by" text/logo with a link back to
014: * http://www.mvnForum.com and http://www.MyVietnam.net in
015: * the footer of the pages MUST remain visible when the pages
016: * are viewed on the internet or intranet.
017: *
018: * This program is free software; you can redistribute it and/or modify
019: * it under the terms of the GNU General Public License as published by
020: * the Free Software Foundation; either version 2 of the License, or
021: * any later version.
022: *
023: * This program is distributed in the hope that it will be useful,
024: * but WITHOUT ANY WARRANTY; without even the implied warranty of
025: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
026: * GNU General Public License for more details.
027: *
028: * You should have received a copy of the GNU General Public License
029: * along with this program; if not, write to the Free Software
030: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
031: *
032: * Support can be obtained from support forums at:
033: * http://www.mvnForum.com/mvnforum/index
034: *
035: * Correspondence and Marketing Questions can be sent to:
036: * info at MyVietnam net
037: *
038: * @author:
039: */
040: package org.mvnforum.phpbb2mvnforum.db.jdbc;
041:
042: import java.sql.Connection;
043: import java.sql.Date;
044: import java.sql.PreparedStatement;
045: import java.sql.ResultSet;
046: import java.sql.SQLException;
047: import java.sql.Timestamp;
048:
049: import net.myvietnam.mvncore.exception.CreateException;
050: import net.myvietnam.mvncore.exception.DatabaseException;
051: import net.myvietnam.mvncore.exception.DuplicateKeyException;
052: import net.myvietnam.mvncore.exception.ObjectNotFoundException;
053:
054: import org.mvnforum.phpbb2mvnforum.db.MemberDAO;
055: import org.mvnforum.util.DBUtils;
056:
057: import com.mvnforum.db.MemberBean;
058:
059: public class MemberDAOImpl implements MemberDAO {
060:
061: public void findByPrimaryKey(int memberID)
062: throws ObjectNotFoundException, DatabaseException {
063:
064: Connection connection = null;
065: PreparedStatement statement = null;
066: ResultSet resultSet = null;
067:
068: StringBuffer sql = new StringBuffer(512);
069: sql.append("SELECT MemberID");
070: sql.append(" FROM " + TABLE_NAME);
071: sql.append(" WHERE MemberID = ?");
072:
073: try {
074: connection = DBUtils.getMvnConnection();
075: statement = connection.prepareStatement(sql.toString());
076: statement.setInt(1, memberID);
077: resultSet = statement.executeQuery();
078: if (!resultSet.next()) {
079: throw new ObjectNotFoundException(
080: "Cannot find the primary key (" + memberID
081: + ") in table 'Member'.");
082: }
083: } catch (SQLException sqle) {
084: sqle.printStackTrace();
085: throw new DatabaseException(
086: "Error executing SQL in MemberDAOImplJDBC.findByPrimaryKey.");
087: } finally {
088: DBUtils.closeResultSet(resultSet);
089: DBUtils.closeStatement(statement);
090: DBUtils.closeConnection(connection);
091: }
092: }
093:
094: public void findByPrimaryKey2(int memberID, String memberName)
095: throws ObjectNotFoundException, DatabaseException {
096: // TODO Auto-generated method stub
097: }
098:
099: public void findByAlternateKey_MemberEmail(String memberEmail)
100: throws ObjectNotFoundException, DatabaseException {
101:
102: Connection connection = null;
103: PreparedStatement statement = null;
104: ResultSet resultSet = null;
105:
106: StringBuffer sql = new StringBuffer(512);
107: sql.append("SELECT MemberEmail");
108: sql.append(" FROM " + TABLE_NAME);
109: sql.append(" WHERE MemberEmail = ?");
110:
111: try {
112: connection = DBUtils.getMvnConnection();
113: statement = connection.prepareStatement(sql.toString());
114: statement.setString(1, memberEmail);
115: resultSet = statement.executeQuery();
116:
117: if (!resultSet.next()) {
118: throw new ObjectNotFoundException(
119: "Cannot find the alternate key [MemberEmail] ("
120: + memberEmail + ") in table 'Member'.");
121: }
122: } catch (SQLException sqle) {
123: sqle.printStackTrace();
124: throw new DatabaseException(
125: "Error executing SQL in MemberDAOImplJDBC.findByAlternateKey_MemberEmail.");
126: } finally {
127: DBUtils.closeResultSet(resultSet);
128: DBUtils.closeStatement(statement);
129: DBUtils.closeConnection(connection);
130: }
131: }
132:
133: public void findByAlternateKey_MemberName(String memberName)
134: throws ObjectNotFoundException, DatabaseException {
135:
136: Connection connection = null;
137: PreparedStatement statement = null;
138: ResultSet resultSet = null;
139:
140: StringBuffer sql = new StringBuffer(512);
141: sql.append("SELECT MemberName");
142: sql.append(" FROM " + TABLE_NAME);
143: sql.append(" WHERE MemberName = ?");
144:
145: try {
146: connection = DBUtils.getMvnConnection();
147: statement = connection.prepareStatement(sql.toString());
148: statement.setString(1, memberName);
149: resultSet = statement.executeQuery();
150: if (!resultSet.next()) {
151: throw new ObjectNotFoundException(
152: "Cannot find the alternate key [MemberName] ("
153: + memberName + ") in table 'Member'.");
154: }
155: } catch (SQLException sqle) {
156: sqle.printStackTrace();
157: throw new DatabaseException(
158: "Error executing SQL in MemberDAOImplJDBC.findByAlternateKey_MemberName.");
159: } finally {
160: DBUtils.closeResultSet(resultSet);
161: DBUtils.closeStatement(statement);
162: DBUtils.closeConnection(connection);
163: }
164: }
165:
166: public void deleteByPrimaryKey(int memberID)
167: throws DatabaseException {
168: // TODO Auto-generated method stub
169:
170: }
171:
172: /*
173: * Included columns: MemberID, MemberName, MemberPassword, MemberFirstEmail, MemberEmail,
174: * MemberEmailVisible, MemberNameVisible, MemberFirstIP, MemberLastIP, MemberViewCount,
175: * MemberPostCount, MemberCreationDate, MemberModifiedDate, MemberExpireDate, MemberLastLogon,
176: * MemberOption, MemberStatus, MemberActivateCode, MemberTempPassword, MemberMessageCount,
177: * MemberMessageOption, MemberPostsPerPage, MemberWarnCount, MemberVoteCount, MemberVoteTotalStars,
178: * MemberRewardPoints, MemberTitle, MemberTimeZone, MemberSignature, MemberAvatar,
179: * MemberSkin, MemberLanguage, MemberFirstname, MemberLastname, MemberGender,
180: * MemberBirthday, MemberAddress, MemberCity, MemberState, MemberCountry,
181: * MemberPhone, MemberMobile, MemberFax, MemberCareer, MemberHomepage,
182: * MemberYahoo, MemberAol, MemberIcq, MemberMsn, MemberCoolLink1,
183: * MemberCoolLink2
184: * Excluded columns:
185: */
186: public void create(int memberID, String memberName,
187: String memberPassword, String memberFirstEmail,
188: String memberEmail, int memberEmailVisible,
189: int memberNameVisible, String memberFirstIP,
190: String memberLastIP, int memberViewCount,
191: int memberPostCount, Timestamp memberCreationDate,
192: Timestamp memberModifiedDate, Timestamp memberExpireDate,
193: Timestamp memberLastLogon, int memberOption,
194: int memberStatus, String memberActivateCode,
195: String memberTempPassword, int memberMessageCount,
196: int memberMessageOption, int memberPostsPerPage,
197: int memberWarnCount, int memberVoteCount,
198: int memberVoteTotalStars, int memberRewardPoints,
199: String memberTitle, double memberTimeZone,
200: String memberSignature, String memberAvatar,
201: String memberSkin, String memberLanguage,
202: String memberFirstname, String memberLastname,
203: int memberGender, Date memberBirthday,
204: String memberAddress, String memberCity,
205: String memberState, String memberCountry,
206: String memberPhone, String memberMobile, String memberFax,
207: String memberCareer, String memberHomepage,
208: String memberYahoo, String memberAol, String memberIcq,
209: String memberMsn, String memberCoolLink1,
210: String memberCoolLink2) throws CreateException,
211: DatabaseException, DuplicateKeyException {
212:
213: // @todo: comment this try-catch block if the needed columns dont have attribute 'include'
214: // If this is the case, then it is highly recommended that you regenerate this method with the attribute 'include' turned on
215: // However, if primary key is a auto_increament column, then you can safely delete this block
216: try {
217: //Check if primary key already exists
218: findByPrimaryKey(memberID);
219: //If so, then we have to throw an exception
220: throw new DuplicateKeyException(
221: "Primary key already exists. Cannot create new member with the same [MemberID] ("
222: + memberID + ").");
223: } catch (ObjectNotFoundException e) {
224: //Otherwise we can go ahead
225: }
226:
227: // @todo: Comment this try-catch block if the needed columns dont have attribute 'include'
228: // If this is the case, then it is highly recommended that you regenerate this method with the attribute 'include' turned on
229: try {
230: //Check if alternate key already exists
231: findByAlternateKey_MemberEmail(memberEmail);
232: //If so, then we have to throw an exception
233: throw new DuplicateKeyException(
234: "Alternate key already exists. Cannot create new member with the same [MemberEmail] ("
235: + memberEmail + ").");
236: } catch (ObjectNotFoundException e) {
237: //Otherwise we can go ahead
238: }
239:
240: // @todo: Comment this try-catch block if the needed columns dont have attribute 'include'
241: // If this is the case, then it is highly recommended that you regenerate this method with the attribute 'include' turned on
242: try {
243: //Check if alternate key already exists
244: findByAlternateKey_MemberName(memberName);
245: //If so, then we have to throw an exception
246: throw new DuplicateKeyException(
247: "Alternate key already exists. Cannot create new member with the same [MemberName] ("
248: + memberName + ").");
249: } catch (ObjectNotFoundException e) {
250: //Otherwise we can go ahead
251: }
252:
253: Connection connection = null;
254: PreparedStatement statement = null;
255: StringBuffer sql = new StringBuffer(512);
256: sql
257: .append("INSERT INTO "
258: + TABLE_NAME
259: + " (MemberID, MemberName, MemberPassword, MemberFirstEmail, MemberEmail, MemberEmailVisible, MemberNameVisible, MemberFirstIP, MemberLastIP, MemberViewCount, MemberPostCount, MemberCreationDate, MemberModifiedDate, MemberExpireDate, MemberLastLogon, MemberOption, MemberStatus, MemberActivateCode, MemberTempPassword, MemberMessageCount, MemberMessageOption, MemberPostsPerPage, MemberWarnCount, MemberVoteCount, MemberVoteTotalStars, MemberRewardPoints, MemberTitle, MemberTimeZone, MemberSignature, MemberAvatar, MemberSkin, MemberLanguage, MemberFirstname, MemberLastname, MemberGender, MemberBirthday, MemberAddress, MemberCity, MemberState, MemberCountry, MemberPhone, MemberMobile, MemberFax, MemberCareer, MemberHomepage, MemberYahoo, MemberAol, MemberIcq, MemberMsn, MemberCoolLink1, MemberCoolLink2)");
260: sql
261: .append(" VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
262: try {
263: connection = DBUtils.getMvnConnection();
264: statement = connection.prepareStatement(sql.toString());
265:
266: statement.setInt(1, memberID);
267: statement.setString(2, memberName);
268: statement.setString(3, memberPassword);
269: statement.setString(4, memberFirstEmail);
270: statement.setString(5, memberEmail);
271: statement.setInt(6, memberEmailVisible);
272: statement.setInt(7, memberNameVisible);
273: statement.setString(8, memberFirstIP);
274: statement.setString(9, memberLastIP);
275: statement.setInt(10, memberViewCount);
276: statement.setInt(11, memberPostCount);
277: statement.setTimestamp(12, memberCreationDate);
278: statement.setTimestamp(13, memberModifiedDate);
279: statement.setTimestamp(14, memberExpireDate);
280: statement.setTimestamp(15, memberLastLogon);
281: statement.setInt(16, memberOption);
282: statement.setInt(17, memberStatus);
283: statement.setString(18, memberActivateCode);
284: statement.setString(19, memberTempPassword);
285: statement.setInt(20, memberMessageCount);
286: statement.setInt(21, memberMessageOption);
287: statement.setInt(22, memberPostsPerPage);
288: statement.setInt(23, memberWarnCount);
289: statement.setInt(24, memberVoteCount);
290: statement.setInt(25, memberVoteTotalStars);
291: statement.setInt(26, memberRewardPoints);
292: statement.setString(27, memberTitle);
293: statement.setDouble(28, memberTimeZone);
294: statement.setString(29, memberSignature);
295: statement.setString(30, memberAvatar);
296: statement.setString(31, memberSkin);
297: statement.setString(32, memberLanguage);
298: statement.setString(33, memberFirstname);
299: statement.setString(34, memberLastname);
300: statement.setInt(35, memberGender);
301: statement.setDate(36, memberBirthday);
302: statement.setString(37, memberAddress);
303: statement.setString(38, memberCity);
304: statement.setString(39, memberState);
305: statement.setString(40, memberCountry);
306: statement.setString(41, memberPhone);
307: statement.setString(42, memberMobile);
308: statement.setString(43, memberFax);
309: statement.setString(44, memberCareer);
310: statement.setString(45, memberHomepage);
311: statement.setString(46, memberYahoo);
312: statement.setString(47, memberAol);
313: statement.setString(48, memberIcq);
314: statement.setString(49, memberMsn);
315: statement.setString(50, memberCoolLink1);
316: statement.setString(51, memberCoolLink2);
317:
318: if (statement.executeUpdate() != 1) {
319: throw new CreateException(
320: "Error adding a row into table 'member'.");
321: }
322: } catch (SQLException sqle) {
323: sqle.printStackTrace();
324: throw new DatabaseException(
325: "Error executing SQL in memberDAOImplJDBC.create.");
326: } finally {
327: DBUtils.closeStatement(statement);
328: DBUtils.closeConnection(connection);
329: }
330: }
331:
332: /*
333: * Included columns: MemberID, MemberName, MemberPassword, MemberFirstEmail, MemberEmail,
334: * MemberEmailVisible, MemberNameVisible, MemberFirstIP, MemberLastIP, MemberViewCount,
335: * MemberPostCount, MemberCreationDate, MemberModifiedDate, MemberExpireDate, MemberLastLogon,
336: * MemberOption, MemberStatus, MemberActivateCode, MemberTempPassword, MemberMessageCount,
337: * MemberMessageOption, MemberPostsPerPage, MemberWarnCount, MemberVoteCount, MemberVoteTotalStars,
338: * MemberRewardPoints, MemberTitle, MemberTimeZone, MemberSignature, MemberAvatar,
339: * MemberSkin, MemberLanguage, MemberFirstname, MemberLastname, MemberGender,
340: * MemberBirthday, MemberAddress, MemberCity, MemberState, MemberCountry,
341: * MemberPhone, MemberMobile, MemberFax, MemberCareer, MemberHomepage,
342: * MemberYahoo, MemberAol, MemberIcq, MemberMsn, MemberCoolLink1,
343: * MemberCoolLink2
344: * Excluded columns:
345: */
346: public MemberBean getBean(int memberID)
347: throws ObjectNotFoundException, DatabaseException {
348:
349: Connection connection = null;
350: PreparedStatement statement = null;
351: ResultSet resultSet = null;
352: StringBuffer sql = new StringBuffer(512);
353: sql
354: .append("SELECT MemberID, MemberName, MemberPassword, MemberFirstEmail, MemberEmail, MemberEmailVisible, MemberNameVisible, MemberFirstIP, MemberLastIP, MemberViewCount, MemberPostCount, MemberCreationDate, MemberModifiedDate, MemberExpireDate, MemberLastLogon, MemberOption, MemberStatus, MemberActivateCode, MemberTempPassword, MemberMessageCount, MemberMessageOption, MemberPostsPerPage, MemberWarnCount, MemberVoteCount, MemberVoteTotalStars, MemberRewardPoints, MemberTitle, MemberTimeZone, MemberSignature, MemberAvatar, MemberSkin, MemberLanguage, MemberFirstname, MemberLastname, MemberGender, MemberBirthday, MemberAddress, MemberCity, MemberState, MemberCountry, MemberPhone, MemberMobile, MemberFax, MemberCareer, MemberHomepage, MemberYahoo, MemberAol, MemberIcq, MemberMsn, MemberCoolLink1, MemberCoolLink2");
355: sql.append(" FROM " + TABLE_NAME);
356: sql.append(" WHERE MemberID = ?");
357: try {
358: connection = DBUtils.getMvnConnection();
359: statement = connection.prepareStatement(sql.toString());
360: statement.setInt(1, memberID);
361: resultSet = statement.executeQuery();
362: if (!resultSet.next()) {
363: throw new ObjectNotFoundException(
364: "Cannot find the row in table Member where primary key = ("
365: + memberID + ").");
366: }
367:
368: MemberBean bean = new MemberBean();
369: // @todo: uncomment the following line(s) as needed
370: //bean.setMemberID(memberID);
371: bean.setMemberID(resultSet.getInt("MemberID"));
372: bean.setMemberName(resultSet.getString("MemberName"));
373: //bean.setMemberPassword(resultSet.getString("MemberPassword"));
374: bean.setMemberFirstEmail(resultSet
375: .getString("MemberFirstEmail"));
376: bean.setMemberEmail(resultSet.getString("MemberEmail"));
377: bean.setMemberEmailVisible(resultSet
378: .getInt("MemberEmailVisible"));
379: bean.setMemberNameVisible(resultSet
380: .getInt("MemberNameVisible"));
381: bean.setMemberFirstIP(resultSet.getString("MemberFirstIP"));
382: bean.setMemberLastIP(resultSet.getString("MemberLastIP"));
383: bean
384: .setMemberViewCount(resultSet
385: .getInt("MemberViewCount"));
386: bean
387: .setMemberPostCount(resultSet
388: .getInt("MemberPostCount"));
389: bean.setMemberCreationDate(resultSet
390: .getTimestamp("MemberCreationDate"));
391: bean.setMemberModifiedDate(resultSet
392: .getTimestamp("MemberModifiedDate"));
393: bean.setMemberExpireDate(resultSet
394: .getTimestamp("MemberExpireDate"));
395: bean.setMemberLastLogon(resultSet
396: .getTimestamp("MemberLastLogon"));
397: bean.setMemberOption(resultSet.getInt("MemberOption"));
398: bean.setMemberStatus(resultSet.getInt("MemberStatus"));
399: bean.setMemberActivateCode(resultSet
400: .getString("MemberActivateCode"));
401: //bean.setMemberTempPassword(resultSet.getString("MemberTempPassword"));
402: bean.setMemberMessageCount(resultSet
403: .getInt("MemberMessageCount"));
404: bean.setMemberMessageOption(resultSet
405: .getInt("MemberMessageOption"));
406: bean.setMemberPostsPerPage(resultSet
407: .getInt("MemberPostsPerPage"));
408: bean
409: .setMemberWarnCount(resultSet
410: .getInt("MemberWarnCount"));
411: bean
412: .setMemberVoteCount(resultSet
413: .getInt("MemberVoteCount"));
414: bean.setMemberVoteTotalStars(resultSet
415: .getInt("MemberVoteTotalStars"));
416: bean.setMemberRewardPoints(resultSet
417: .getInt("MemberRewardPoints"));
418: bean.setMemberTitle(resultSet.getString("MemberTitle"));
419: bean.setMemberTimeZone(resultSet
420: .getDouble("MemberTimeZone"));
421: bean.setMemberSignature(resultSet
422: .getString("MemberSignature"));
423: bean.setMemberAvatar(resultSet.getString("MemberAvatar"));
424: bean.setMemberSkin(resultSet.getString("MemberSkin"));
425: bean.setMemberLanguage(resultSet
426: .getString("MemberLanguage"));
427: bean.setMemberFirstname(resultSet
428: .getString("MemberFirstname"));
429: bean.setMemberLastname(resultSet
430: .getString("MemberLastname"));
431: bean.setMemberGender(resultSet.getInt("MemberGender"));
432: bean.setMemberBirthday(resultSet.getDate("MemberBirthday"));
433: bean.setMemberAddress(resultSet.getString("MemberAddress"));
434: bean.setMemberCity(resultSet.getString("MemberCity"));
435: bean.setMemberState(resultSet.getString("MemberState"));
436: bean.setMemberCountry(resultSet.getString("MemberCountry"));
437: bean.setMemberPhone(resultSet.getString("MemberPhone"));
438: bean.setMemberMobile(resultSet.getString("MemberMobile"));
439: bean.setMemberFax(resultSet.getString("MemberFax"));
440: bean.setMemberCareer(resultSet.getString("MemberCareer"));
441: bean.setMemberHomepage(resultSet
442: .getString("MemberHomepage"));
443: bean.setMemberYahoo(resultSet.getString("MemberYahoo"));
444: bean.setMemberAol(resultSet.getString("MemberAol"));
445: bean.setMemberIcq(resultSet.getString("MemberIcq"));
446: bean.setMemberMsn(resultSet.getString("MemberMsn"));
447: bean.setMemberCoolLink1(resultSet
448: .getString("MemberCoolLink1"));
449: bean.setMemberCoolLink2(resultSet
450: .getString("MemberCoolLink2"));
451: return bean;
452: } catch (SQLException sqle) {
453: sqle.printStackTrace();
454: throw new DatabaseException(
455: "Error executing SQL in MemberDAOImplJDBC.getBean(pk).");
456: } finally {
457: DBUtils.closeResultSet(resultSet);
458: DBUtils.closeStatement(statement);
459: DBUtils.closeConnection(connection);
460: }
461: }
462:
463: /*
464: * Included columns: MemberID, MemberName, MemberPassword, MemberFirstEmail, MemberEmail,
465: * MemberEmailVisible, MemberNameVisible, MemberFirstIP, MemberLastIP, MemberViewCount,
466: * MemberPostCount, MemberCreationDate, MemberModifiedDate, MemberExpireDate, MemberLastLogon,
467: * MemberOption, MemberStatus, MemberActivateCode, MemberTempPassword, MemberMessageCount,
468: * MemberMessageOption, MemberPostsPerPage, MemberWarnCount, MemberVoteCount, MemberVoteTotalStars,
469: * MemberRewardPoints, MemberTitle, MemberTimeZone, MemberSignature, MemberAvatar,
470: * MemberSkin, MemberLanguage, MemberFirstname, MemberLastname, MemberGender,
471: * MemberBirthday, MemberAddress, MemberCity, MemberState, MemberCountry,
472: * MemberPhone, MemberMobile, MemberFax, MemberCareer, MemberHomepage,
473: * MemberYahoo, MemberAol, MemberIcq, MemberMsn, MemberCoolLink1,
474: * MemberCoolLink2
475: * Excluded columns:
476: */
477: public void update(
478: int memberID, // primary key
479: String memberName, String memberPassword,
480: String memberFirstEmail, String memberEmail,
481: int memberEmailVisible, int memberNameVisible,
482: String memberFirstIP, String memberLastIP,
483: int memberViewCount, int memberPostCount,
484: Timestamp memberCreationDate, Timestamp memberModifiedDate,
485: Timestamp memberExpireDate, Timestamp memberLastLogon,
486: int memberOption, int memberStatus,
487: String memberActivateCode, String memberTempPassword,
488: int memberMessageCount, int memberMessageOption,
489: int memberPostsPerPage, int memberWarnCount,
490: int memberVoteCount, int memberVoteTotalStars,
491: int memberRewardPoints, String memberTitle,
492: double memberTimeZone, String memberSignature,
493: String memberAvatar, String memberSkin,
494: String memberLanguage, String memberFirstname,
495: String memberLastname, int memberGender,
496: Date memberBirthday, String memberAddress,
497: String memberCity, String memberState,
498: String memberCountry, String memberPhone,
499: String memberMobile, String memberFax, String memberCareer,
500: String memberHomepage, String memberYahoo,
501: String memberAol, String memberIcq, String memberMsn,
502: String memberCoolLink1, String memberCoolLink2)
503: throws ObjectNotFoundException,
504: DatabaseException/*, DuplicateKeyException*/,
505: DuplicateKeyException {
506:
507: MemberBean bean = getBean(memberID); // @todo: comment or delete this line if no alternate key are included
508:
509: if (!memberEmail.equals(bean.getMemberEmail())) {
510: // member tries to change its alternate key [MemberEmail], so we must check if it already exist
511: try {
512: findByAlternateKey_MemberEmail(memberEmail);
513: throw new DuplicateKeyException(
514: "Alternate key [MemberEmail] ("
515: + memberEmail
516: + ") already exists. Cannot update member.");
517: } catch (ObjectNotFoundException e) {
518: //Otherwise we can go ahead
519: }
520: }
521:
522: Connection connection = null;
523: PreparedStatement statement = null;
524: StringBuffer sql = new StringBuffer(512);
525: sql
526: .append("UPDATE "
527: + TABLE_NAME
528: + " SET MemberName = ?, MemberPassword = ?, MemberFirstEmail = ?, MemberEmail = ?, MemberEmailVisible = ?, MemberNameVisible = ?, MemberFirstIP = ?, MemberLastIP = ?, MemberViewCount = ?, MemberPostCount = ?, MemberCreationDate = ?, MemberModifiedDate = ?, MemberExpireDate = ?, MemberLastLogon = ?, MemberOption = ?, MemberStatus = ?, MemberActivateCode = ?, MemberTempPassword = ?, MemberMessageCount = ?, MemberMessageOption = ?, MemberPostsPerPage = ?, MemberWarnCount = ?, MemberVoteCount = ?, MemberVoteTotalStars = ?, MemberRewardPoints = ?, MemberTitle = ?, MemberTimeZone = ?, MemberSignature = ?, MemberAvatar = ?, MemberSkin = ?, MemberLanguage = ?, MemberFirstname = ?, MemberLastname = ?, MemberGender = ?, MemberBirthday = ?, MemberAddress = ?, MemberCity = ?, MemberState = ?, MemberCountry = ?, MemberPhone = ?, MemberMobile = ?, MemberFax = ?, MemberCareer = ?, MemberHomepage = ?, MemberYahoo = ?, MemberAol = ?, MemberIcq = ?, MemberMsn = ?, MemberCoolLink1 = ?, MemberCoolLink2 = ?");
529: sql.append(" WHERE MemberID = ?");
530: try {
531: connection = DBUtils.getMvnConnection();
532: statement = connection.prepareStatement(sql.toString());
533:
534: // // column(s) to update
535: statement.setString(1, memberName);
536: statement.setString(2, memberPassword);
537: statement.setString(3, memberFirstEmail);
538: statement.setString(4, memberEmail);
539: statement.setInt(5, memberEmailVisible);
540: statement.setInt(6, memberNameVisible);
541: statement.setString(7, memberFirstIP);
542: statement.setString(8, memberLastIP);
543: statement.setInt(9, memberViewCount);
544: statement.setInt(10, memberPostCount);
545: statement.setTimestamp(11, memberCreationDate);
546: statement.setTimestamp(12, memberModifiedDate);
547: statement.setTimestamp(13, memberExpireDate);
548: statement.setTimestamp(14, memberLastLogon);
549: statement.setInt(15, memberOption);
550: statement.setInt(16, memberStatus);
551: statement.setString(17, memberActivateCode);
552: statement.setString(18, memberTempPassword);
553: statement.setInt(19, memberMessageCount);
554: statement.setInt(20, memberMessageOption);
555: statement.setInt(21, memberPostsPerPage);
556: statement.setInt(22, memberWarnCount);
557: statement.setInt(23, memberVoteCount);
558: statement.setInt(24, memberVoteTotalStars);
559: statement.setInt(25, memberRewardPoints);
560: statement.setString(26, memberTitle);
561: statement.setDouble(27, memberTimeZone);
562: statement.setString(28, memberSignature);
563: statement.setString(29, memberAvatar);
564: statement.setString(30, memberSkin);
565: statement.setString(31, memberLanguage);
566: statement.setString(32, memberFirstname);
567: statement.setString(33, memberLastname);
568: statement.setInt(34, memberGender);
569: statement.setDate(35, memberBirthday);
570: statement.setString(36, memberAddress);
571: statement.setString(37, memberCity);
572: statement.setString(38, memberState);
573: statement.setString(39, memberCountry);
574: statement.setString(40, memberPhone);
575: statement.setString(41, memberMobile);
576: statement.setString(42, memberFax);
577: statement.setString(43, memberCareer);
578: statement.setString(44, memberHomepage);
579: statement.setString(45, memberYahoo);
580: statement.setString(46, memberAol);
581: statement.setString(47, memberIcq);
582: statement.setString(48, memberMsn);
583: statement.setString(49, memberCoolLink1);
584: statement.setString(50, memberCoolLink2);
585:
586: // primary key column(s)
587: statement.setInt(51, memberID);
588:
589: if (statement.executeUpdate() != 1) {
590: throw new ObjectNotFoundException(
591: "Cannot update table member where primary key = ("
592: + memberID + ").");
593: }
594: } catch (SQLException sqle) {
595: sqle.printStackTrace();
596: throw new DatabaseException(
597: "Error executing SQL in memberDAOImplJDBC.update.");
598: } finally {
599: DBUtils.closeStatement(statement);
600: DBUtils.closeConnection(connection);
601: }
602: }
603:
604: public String getMemberNameFromMemberID(int memberID)
605: throws ObjectNotFoundException, DatabaseException {
606:
607: Connection connection = null;
608: PreparedStatement statement = null;
609: ResultSet resultSet = null;
610: StringBuffer sql = new StringBuffer(512);
611: sql.append("SELECT MemberName");
612: sql.append(" FROM " + TABLE_NAME);
613: sql.append(" WHERE MemberID = ?");
614: try {
615: connection = DBUtils.getMvnConnection();
616: statement = connection.prepareStatement(sql.toString());
617: statement.setInt(1, memberID);
618: resultSet = statement.executeQuery();
619: if (!resultSet.next()) {
620: throw new ObjectNotFoundException(
621: "Cannot find the row in table member where primary key = ("
622: + memberID + ").");
623: }
624: return resultSet.getString("MemberName");
625: } catch (SQLException sqle) {
626: sqle.printStackTrace();
627: throw new DatabaseException(
628: "Error executing SQL in memberDAOImplJDBC.getBean(pk).");
629: } finally {
630: DBUtils.closeResultSet(resultSet);
631: DBUtils.closeStatement(statement);
632: DBUtils.closeConnection(connection);
633: }
634: }
635:
636: public void create(String memberName, String memberPassword,
637: String memberFirstEmail, String memberEmail,
638: int memberEmailVisible, int memberNameVisible,
639: String memberFirstIP, String memberLastIP,
640: int memberViewCount, int memberPostCount,
641: Timestamp memberCreationDate, Timestamp memberModifiedDate,
642: Timestamp memberExpireDate, Timestamp memberLastLogon,
643: int memberOption, int memberStatus,
644: String memberActivateCode, String memberTempPassword,
645: int memberMessageCount, int memberMessageOption,
646: int memberPostsPerPage, int memberWarnCount,
647: int memberVoteCount, int memberVoteTotalStars,
648: int memberRewardPoints, String memberTitle, double tzone,
649: String memberSignature, String memberAvatar,
650: String memberSkin, String memberLanguage,
651: String memberFirstname, String memberLastname,
652: int memberGender, Date memberBirthday,
653: String memberAddress, String memberCity,
654: String memberState, String memberCountry,
655: String memberPhone, String memberMobile, String memberFax,
656: String memberCareer, String memberHomepage,
657: String memberYahoo, String memberAol, String memberIcq,
658: String memberMsn, String memberCoolLink1,
659: String memberCoolLink2) throws CreateException,
660: DatabaseException, DuplicateKeyException {
661: // TODO Auto-generated method stub
662:
663: }
664:
665: public org.mvnforum.phpbb2mvnforum.db.MemberBean getMemberFromMemberName(
666: String memberName) throws ObjectNotFoundException,
667: DatabaseException {
668: // TODO Auto-generated method stub
669: return null;
670: }
671:
672: }
|