| 1 41 package com.mvnforum.db.jdbc; 42 43 import java.sql.*; 44 import java.util.ArrayList ; 45 import java.util.Collection ; 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 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 86 87 public Collection getBeans(int offset, int rowsToReturn) 88 throws DatabaseException { 89 90 if (DBUtils.getDatabaseType() != DBUtils.DATABASE_MYSQL) { 91 throw new IllegalStateException ("Currently only support MySql"); 92 } 93 Connection connection = null; 94 PreparedStatement statement = null; 95 ResultSet resultSet = null; 96 Collection retValue = new ArrayList (); 97 StringBuffer sql = new StringBuffer (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 sql = new StringBuffer (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 220 221 public void findByAlternateKey_MemberName(String memberName) 222 throws ObjectNotFoundException, DatabaseException { 223 224 Connection connection = null; 225 PreparedStatement statement = null; 226 ResultSet resultSet = null; 227 StringBuffer sql = new StringBuffer (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 252 public Collection getMembers_inTutor(int tutorID) 253 throws DatabaseException { 254 255 Connection connection = null; 256 PreparedStatement statement = null; 257 ResultSet resultSet = null; 258 Collection retValue = new ArrayList (); 259 StringBuffer sql = new StringBuffer (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 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 298 public void create(int memberID, String memberName, int tutorID, 299 String tutorName, Timestamp creationDate, Timestamp expireDate, 300 int relationType, int relationOption, int relationStatus) 301 throws CreateException, DatabaseException, DuplicateKeyException, ForeignKeyNotFoundException { 302 303 try { 307 findByPrimaryKey(memberID); 309 throw new DuplicateKeyException("Primary key already exists. Cannot create new MemberTutor with the same [MemberID] (" + memberID + ")."); 311 } catch(ObjectNotFoundException e) { 312 } 314 315 try { 318 findByAlternateKey_MemberName(memberName); 320 throw new DuplicateKeyException("Alternate key already exists. Cannot create new MemberTutor with the same [MemberName] (" + memberName + ")."); 322 } catch(ObjectNotFoundException e) { 323 } 325 try { 326 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 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 sql = new StringBuffer (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 sql = new StringBuffer (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 sql = new StringBuffer (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 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 sql = new StringBuffer (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 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 475 public Collection getBeans_inTutor_limit(int tutorID, int offset, int rowsToReturn) 476 throws IllegalArgumentException , DatabaseException { 477 if (offset < 0) throw new IllegalArgumentException ("The offset < 0 is not allowed."); 478 if (rowsToReturn <= 0) throw new IllegalArgumentException ("The rowsToReturn <= 0 is not allowed."); 479 480 Connection connection = null; 481 PreparedStatement statement = null; 482 ResultSet resultSet = null; 483 Collection retValue = new ArrayList (); 484 StringBuffer sql = new StringBuffer (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(" 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 ("Currently only support MySql"); 526 } 527 Connection connection = null; 528 PreparedStatement statement = null; 529 ResultSet resultSet = null; 530 StringBuffer sql = new StringBuffer (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 sql = new StringBuffer (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 586 public Collection getBeans_inExpire_limit(Timestamp expireDate, int offset, int rowsToReturn) 587 throws IllegalArgumentException , DatabaseException { 588 if (offset < 0) throw new IllegalArgumentException ("The offset < 0 is not allowed."); 589 if (rowsToReturn <= 0) throw new IllegalArgumentException ("The rowsToReturn <= 0 is not allowed."); 590 591 Connection connection = null; 592 PreparedStatement statement = null; 593 ResultSet resultSet = null; 594 Collection retValue = new ArrayList (); 595 StringBuffer sql = new StringBuffer (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(" 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 sql = new StringBuffer (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 666 public void updateMember_expireDate(int memberID, Timestamp expireDate) 668 throws ObjectNotFoundException, DatabaseException { 669 670 672 Connection connection = null; 673 PreparedStatement statement = null; 674 StringBuffer sql = new StringBuffer (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 statement.setTimestamp(1, expireDate); 683 684 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 } | Popular Tags |