/** * Prepares the statement used to delete this object from the database. * * @param conn the database connection * @return the delete statement. * @exception java.sql.SQLException if an error occurs. */ public PreparedStatement getDeleteStatement(DBConnection conn) throws SQLException { String sql = "delete from PersonalProfile \n" + "where " + getOIdColumnName() + " = ?"; PreparedStatement stmt = conn.prepareStatement(sql); stmt.setBigDecimal(1, getOId().toBigDecimal()); return stmt; }
/** * Prepares the statement used to insert this object into the database. * * @param conn the database connection. * @return the insert statement. * @exception java.sql.SQLException if an error occurs. */ public PreparedStatement getInsertStatement(DBConnection conn) throws SQLException { /* * It would probably be better to have CoreDO implement * void addToCache(CoreDO DO) {} * and have each DO that has caching enabled override it as * void addToCache(CoreDO DO) { cache.put( DO.getOId(), DO ); } * and change CoreDO to invoke addToCache() * when it invokes getInsertStatement(). */ ObjectId oid; PreparedStatement stmt = conn.prepareStatement( "insert into PersonalProfile ( LeafNumber, Profile, Mandatory, MinAge, MaxAge, Nationality, Sex, " + getOIdColumnName() + ", " + getVersionColumnName() + " ) values ( ?, ?, ?, ?, ?, ?, ?, ?, ? )"); param = new int[1]; param[0] = 1; // writeMemberStuff uses the JDBCsetCalls.template // to build up the value for this tag: // the value is a series of calls to setPrepStmtParam_TYPE methods. // Those methods are defined in GenericDO. try { setPrepStmtParam_int(stmt, param, getLeafNumber()); setPrepStmtParam_DO(stmt, param, getProfile()); setPrepStmtParam_boolean(stmt, param, getMandatory()); setPrepStmtParam_int(stmt, param, getMinAge()); setPrepStmtParam_int(stmt, param, getMaxAge()); setPrepStmtParam_DO(stmt, param, getNationality()); setPrepStmtParam_String(stmt, param, getSex()); /* The order of the values being inserted must match * the order of the columns listed in the CREATE TABLE command * that appears in the .sql file for this DO. * Since the id and version number are always the last columns * listed in the CREATE TABLE command, their values are added * to the PreparedStatement after all other values. */ setPrepStmtParam_BigDecimal(stmt, param, getOId().toBigDecimal()); setPrepStmtParam_int(stmt, param, getNewVersion()); } catch (Exception e) { throw new SQLException("Data Object error: " + e.getMessage()); } return stmt; }
/** * Prepares the statement used to update this object in the database. * * @param conn the database connection * @return the update statement. * @exception java.sql.SQLException if an error occurs. */ public PreparedStatement getUpdateStatement(DBConnection conn) throws SQLException { ObjectId oid; PreparedStatement stmt = conn.prepareStatement( "update PersonalProfile set " + getVersionColumnName() + " = ?, LeafNumber = ?, Profile = ?, Mandatory = ?, MinAge = ?, MaxAge = ?, Nationality = ?, Sex = ? " + "where " + getOIdColumnName() + " = ? and " + getVersionColumnName() + " = ?"); param = new int[1]; param[0] = 1; // int[] param = {1}; // writeMemberStuff builds up the value for this tag: // the value is a series of calls to setPrepStmtParam_TYPE methods. // Those methods are defined below. try { setPrepStmtParam_int(stmt, param, getNewVersion()); setPrepStmtParam_int(stmt, param, getLeafNumber()); setPrepStmtParam_DO(stmt, param, getProfile()); setPrepStmtParam_boolean(stmt, param, getMandatory()); setPrepStmtParam_int(stmt, param, getMinAge()); setPrepStmtParam_int(stmt, param, getMaxAge()); setPrepStmtParam_DO(stmt, param, getNationality()); setPrepStmtParam_String(stmt, param, getSex()); /* When updating a persistent object, the UPDATE_WHERE_CLAUSE tag * used to build the SQL WHERE clause (above) uses the * DO's id and version number to locate the correct row in * the database table. */ setPrepStmtParam_BigDecimal(stmt, param, getOId().toBigDecimal()); setPrepStmtParam_int(stmt, param, getVersion()); } catch (Exception e) { throw new SQLException("Data Object error: " + e.getMessage()); } return stmt; }