1 package org.mvnforum.phpbb2mvnforum.db.jdbc; 2 3 import java.sql.Connection ; 4 import java.sql.PreparedStatement ; 5 import java.sql.ResultSet ; 6 import java.sql.SQLException ; 7 import java.util.ArrayList ; 8 import java.util.Collection ; 9 10 import net.myvietnam.mvncore.exception.CreateException; 11 import net.myvietnam.mvncore.exception.DatabaseException; 12 import net.myvietnam.mvncore.exception.DuplicateKeyException; 13 import net.myvietnam.mvncore.exception.ObjectNotFoundException; 14 15 import org.mvnforum.util.DBUtils; 16 17 import com.mvnforum.db.RankBean; 18 import com.mvnforum.db.RankDAO; 19 20 public class RankDAOImplJDBC implements RankDAO{ 21 22 public void findByAlternateKey_RankTitle(String rankTitle) 23 throws ObjectNotFoundException, DatabaseException { 24 Connection connection = null; 26 PreparedStatement statement = null; 27 ResultSet resultSet = null; 28 StringBuffer sql = new StringBuffer (512); 29 sql.append("SELECT RankMinPosts"); 30 sql.append(" FROM " + TABLE_NAME); 31 sql.append(" WHERE RankTitle = ?"); 32 try { 33 connection = DBUtils.getMvnConnection(); 34 statement = connection.prepareStatement(sql.toString()); 35 statement.setString(1, rankTitle); 36 resultSet = statement.executeQuery(); 37 if (!resultSet.next()) { 38 throw new ObjectNotFoundException("Cannot find the alternate key [RankTitle] (" + rankTitle + ") in table 'Rank'."); 39 } 40 } catch(SQLException sqle) { 41 sqle.printStackTrace(); 42 throw new DatabaseException("Error executing SQL in RankDAOImplJDBC.findByAlternateKey_RankTitle."); 43 } finally { 44 DBUtils.closeResultSet(resultSet); 45 DBUtils.closeStatement(statement); 46 DBUtils.closeConnection(connection); 47 } 48 49 } 50 51 public void findByAlternateKey_RankMinPosts(int rankMinPosts) 52 throws ObjectNotFoundException, DatabaseException { 53 54 Connection connection = null; 55 PreparedStatement statement = null; 56 ResultSet resultSet = null; 57 StringBuffer sql = new StringBuffer (512); 58 sql.append("SELECT RankTitle"); 59 sql.append(" FROM " + TABLE_NAME); 60 sql.append(" WHERE RankMinPosts = ?"); 61 try { 62 connection = DBUtils.getMvnConnection(); 63 statement = connection.prepareStatement(sql.toString()); 64 statement.setInt(1, rankMinPosts); 65 resultSet = statement.executeQuery(); 66 if (!resultSet.next()) { 67 throw new ObjectNotFoundException("Cannot find the alternate key [RankMinPosts] (" + rankMinPosts + ") in table 'Rank'."); 68 } 69 } catch(SQLException sqle) { 70 throw new DatabaseException("Error executing SQL in RankDAOImplJDBC.findByAlternateKey_RankMinPosts."); 71 } finally { 72 DBUtils.closeResultSet(resultSet); 73 DBUtils.closeStatement(statement); 74 DBUtils.closeConnection(connection); 75 } 76 } 77 78 public void create(int rankMinPosts, int rankLevel, String rankTitle, String rankImage, int rankType, int rankOption) 79 throws CreateException, DatabaseException, DuplicateKeyException { 80 81 try { 84 findByAlternateKey_RankTitle(rankTitle); 86 throw new DuplicateKeyException("Alternate key already exists. Cannot create new Rank with the same [RankTitle] (" + rankTitle + ")."); 88 } catch(ObjectNotFoundException e) { 89 } 91 92 try { 95 findByAlternateKey_RankMinPosts(rankMinPosts); 97 throw new DuplicateKeyException("Alternate key already exists. Cannot create new Rank with the same [RankMinPosts] (" + rankMinPosts + ")."); 99 } catch(ObjectNotFoundException e) { 100 } 102 103 Connection connection = null; 104 PreparedStatement statement = null; 105 StringBuffer sql = new StringBuffer (512); 106 sql.append("INSERT INTO " + TABLE_NAME + " (RankMinPosts, RankLevel, RankTitle, RankImage, RankType, RankOption)"); 107 sql.append(" VALUES (?, ?, ?, ?, ?, ?)"); 108 try { 109 connection = DBUtils.getMvnConnection(); 110 statement = connection.prepareStatement(sql.toString()); 111 112 statement.setInt(1, rankMinPosts); 113 statement.setInt(2, rankLevel); 114 statement.setString(3, rankTitle); 115 statement.setString(4, rankImage); 116 statement.setInt(5, rankType); 117 statement.setInt(6, rankOption); 118 119 if (statement.executeUpdate() != 1) { 120 throw new CreateException("Error adding a row into table 'Rank'."); 121 } 122 } catch(SQLException sqle) { 123 throw new DatabaseException("Error executing SQL in RankDAOImplJDBC.create."); 124 } finally { 125 DBUtils.closeStatement(statement); 126 DBUtils.closeConnection(connection); 127 } 128 } 129 130 public void update(int rankID, int rankMinPosts, int rankLevel, String rankTitle, String rankImage, int rankType, int rankOption) 131 throws ObjectNotFoundException, DatabaseException, DuplicateKeyException { 132 134 } 135 136 public void delete(int rankID) 137 throws DatabaseException, ObjectNotFoundException { 138 140 } 141 142 public RankBean getRank(int rankID) 143 throws ObjectNotFoundException, DatabaseException { 144 return null; 145 } 146 147 public Collection getRanks() 148 throws DatabaseException { 149 Connection connection = null; 150 PreparedStatement statement = null; 151 ResultSet resultSet = null; 152 Collection retValue = new ArrayList (); 153 StringBuffer sql = new StringBuffer (512); 154 sql.append("SELECT RankID, RankMinPosts, RankLevel, RankTitle, RankImage, RankType, RankOption"); 155 sql.append(" FROM " + TABLE_NAME); 156 sql.append(" ORDER BY RankMinPosts ASC "); 157 try { 158 connection = DBUtils.getMvnConnection(); 159 statement = connection.prepareStatement(sql.toString()); 160 resultSet = statement.executeQuery(); 161 while (resultSet.next()) { 162 RankBean bean = new RankBean(); 163 bean.setRankID(resultSet.getInt("RankID")); 164 bean.setRankMinPosts(resultSet.getInt("RankMinPosts")); 165 bean.setRankLevel(resultSet.getInt("RankLevel")); 166 bean.setRankTitle(resultSet.getString("RankTitle")); 167 bean.setRankImage(resultSet.getString("RankImage")); 168 bean.setRankType(resultSet.getInt("RankType")); 169 bean.setRankOption(resultSet.getInt("RankOption")); 170 retValue.add(bean); 171 } 172 return retValue; 173 } catch(SQLException sqle) { 174 throw new DatabaseException("Error executing SQL in RankDAOImplJDBC.getRanks."); 175 } finally { 176 DBUtils.closeResultSet(resultSet); 177 DBUtils.closeStatement(statement); 178 DBUtils.closeConnection(connection); 179 } 180 181 } 182 183 public int getRankIDFromRankTitle(String rankTitle) 184 throws ObjectNotFoundException, DatabaseException { 185 return 0; 187 } 188 189 } 190 | Popular Tags |