1 package sellwin.db; 2 3 import sellwin.domain.*; 4 import sellwin.utils.*; 5 6 import java.sql.*; 7 import java.util.ArrayList ; 8 9 13 18 public class RolePermissionDB extends DBType implements DBInterface { 19 private Connection con; 20 private final static String deleteQuery = 21 "DELETE FROM role_permission WHERE pk = "; 22 private final static String deleteUserRoleQuery= 23 "DELETE FROM role_permission WHERE user_role_pk="; 24 25 private final static String insertQuery = 26 "INSERT INTO role_permission " + 27 "VALUES ("; 28 private final static String updateQuery = 29 "UPDATE role_permission " + 30 "SET "; 31 private final static String selectQuery = 32 "SELECT user_role_pk, name, r, " + 33 "w, modified_by, modified_date "+ 34 "FROM role_permission "+ 35 "WHERE pk = "; 36 private final static String selectAllQuery = 37 "SELECT pk, name, r, " + 38 "w, modified_by, modified_date "+ 39 "FROM role_permission "+ 40 "WHERE user_role_pk = "; 41 42 46 public RolePermissionDB() { 47 } 48 49 53 public RolePermissionDB(int dbType) { 54 DB_TYPE = dbType; 55 } 56 57 63 public RolePermissionDB(Connection con) { 64 this.con = con; 65 } 66 67 72 public Connection getConnection() { 73 return this.con; 74 } 75 76 81 public final void setConnection(Connection con) 82 throws SQLException { 83 84 this.con = con; 85 } 86 87 95 public final Object selectRow(Object pk) 96 throws SQLException { 97 98 RolePermission rp = new RolePermission(); 99 rp.setPK(((Long )pk).longValue()); 100 101 Statement stmt = null; 102 ResultSet rs = null; 103 String query = selectQuery + rp.getPK(); 104 105 try { 106 stmt = con.createStatement(); 107 if (Prefs.DEBUG) LogWrite.write(query); 108 rs = stmt.executeQuery(query); 109 110 int i; 111 112 while (rs.next()) { 113 i=1; 114 rp.setUserRolePK(rs.getLong(i)); i++; 115 rp.setName(rs.getString(i)); i++; 116 String x = rs.getString(i); i++; 117 boolean val; 118 if (x.charAt(0) == 'Y') val=true; else val=false; 119 rp.setRead(val); 120 x = rs.getString(i); i++; 121 if (x.charAt(0) == 'Y') val=true; else val=false; 122 rp.setWrite(val); 123 rp.setModifiedBy(rs.getString(i)); i++; 124 rp.setModifiedDate(rs.getDate(i)); 125 } 126 127 } catch (SQLException e) { 128 throw e; 129 } finally { 130 try { 131 if (rs != null) rs.close(); 132 } catch (SQLException x) { throw x; } 133 try { 134 if (stmt != null) stmt.close(); 135 } catch (SQLException x) { throw x; } 136 } 137 138 return rp; 139 } 140 141 142 151 public final void updateRow(Object obj) 152 throws SQLException { 153 154 RolePermission role_permission = (RolePermission)obj; 155 156 StringBuffer query = new StringBuffer (updateQuery); 157 Statement stmt = con.createStatement(); 158 159 query.append("name="); 160 query.append(JDBC.quoteMore(role_permission.getName())); 161 String x; 162 query.append("r="); 163 if (role_permission.getRead()) x="Y"; else x="N"; 164 query.append(JDBC.quoteMore(x)); 165 query.append("w="); 166 if (role_permission.getWrite()) x="Y"; else x="N"; 167 query.append(JDBC.quoteMore(x)); 168 query.append("modified_by="); 169 query.append(JDBC.quoteMore(role_permission.getModifiedBy())); 170 query.append("modified_date="); 171 if (DB_TYPE == Prefs.MYSQL) 172 query.append("CURRENT_DATE"); 173 else 174 query.append("SYSDATE"); 175 query.append(" WHERE pk="); 176 query.append(role_permission.getPK()); 177 178 if (Prefs.DEBUG) LogWrite.write(query.toString()); 179 int updatedRows = stmt.executeUpdate(query.toString()); 180 } 181 182 191 public final long insertRow(Object obj, boolean load) 192 throws SQLException { 193 194 RolePermission role_permission = (RolePermission)obj; 195 196 if (!load) 197 role_permission.setPK(DBUtils.generatePK()); 198 199 StringBuffer query = new StringBuffer (insertQuery); 200 Statement stmt = con.createStatement(); 201 202 query.append(role_permission.getPK()).append(","); 203 query.append(role_permission.getUserRolePK()).append(","); 204 query.append(JDBC.quoteMore(role_permission.getName())); 205 String x; 206 if (role_permission.getRead()) x="Y"; else x="N"; 207 query.append(JDBC.quoteMore(x)); 208 if (role_permission.getWrite()) x="Y"; else x="N"; 209 query.append(JDBC.quoteMore(x)); 210 query.append(JDBC.quoteMore(role_permission.getModifiedBy())); 211 if (DB_TYPE == Prefs.MYSQL) 212 query.append("CURRENT_DATE"); 213 else 214 query.append("SYSDATE"); 215 query.append(")"); 216 217 if (Prefs.DEBUG) LogWrite.write(query.toString()); 218 int rc = stmt.executeUpdate(query.toString()); 219 220 return role_permission.getPK(); 221 } 222 223 230 public final void deleteRow(Object obj) 231 throws SQLException { 232 233 long pkValue = ((Long )obj).longValue(); 234 235 String query = deleteQuery + pkValue; 236 237 Statement stmt = null; 238 239 try { 240 stmt = con.createStatement(); 241 if (Prefs.DEBUG) LogWrite.write(query); 242 stmt.executeUpdate(query); 243 } catch (SQLException e) { 244 throw e; 245 } finally { 246 try { 247 if (stmt != null) stmt.close(); 248 } catch (SQLException x) { } 249 } 250 } 251 252 259 public final void deleteUserRoleRows(Object obj) 260 throws SQLException { 261 262 long pkValue = ((Long )obj).longValue(); 263 264 String query = deleteUserRoleQuery + pkValue; 265 266 Statement stmt = null; 267 268 try { 269 stmt = con.createStatement(); 270 if (Prefs.DEBUG) LogWrite.write(query); 271 stmt.executeUpdate(query); 272 } catch (SQLException e) { 273 throw e; 274 } finally { 275 try { 276 if (stmt != null) stmt.close(); 277 } catch (SQLException x) { } 278 } 279 } 280 281 289 public final void selectRows(long user_role_pk, ArrayList perms) 290 throws SQLException { 291 292 RolePermission rp; 293 294 Statement stmt = null; 295 ResultSet rs = null; 296 String query = selectAllQuery + user_role_pk; 297 298 try { 299 stmt = con.createStatement(); 300 if (Prefs.DEBUG) LogWrite.write(query); 301 rs = stmt.executeQuery(query); 302 303 int i; 304 305 while (rs.next()) { 306 i=1; 307 rp = new RolePermission(); 308 rp.setPK(rs.getLong(i)); i++; 309 rp.setUserRolePK(user_role_pk); rp.setName(rs.getString(i)); i++; 311 String x = rs.getString(i); i++; 312 boolean val; 313 if (x.charAt(0) == 'Y') val=true; else val=false; 314 rp.setRead(val); 315 x = rs.getString(i); i++; 316 if (x.charAt(0) == 'Y') val=true; else val=false; 317 rp.setWrite(val); 318 rp.setModifiedBy(rs.getString(i)); i++; 319 rp.setModifiedDate(rs.getDate(i)); 320 perms.add(rp); 321 } 322 } catch (SQLException e) { 323 throw e; 324 } finally { 325 try { 326 if (rs != null) rs.close(); 327 } catch (SQLException x) { throw x; } 328 try { 329 if (stmt != null) stmt.close(); 330 } catch (SQLException x) { throw x; } 331 } 332 333 } 334 339 public final void truncate() 340 throws SQLException { 341 342 String query = "truncate table role_permission"; 343 344 Statement stmt = null; 345 try { 346 stmt = con.createStatement(); 347 if (Prefs.DEBUG) LogWrite.write(query); 348 stmt.executeUpdate(query); 349 } catch (SQLException e) { 350 throw e; 351 } finally { 352 try { if (stmt != null) stmt.close(); 353 } catch (SQLException x) { } 354 } 355 } 356 357 } 358 | Popular Tags |