[ https://issues.apache.org/jira/browse/DDLUTILS-197?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Thomas Dudziak resolved DDLUTILS-197. ------------------------------------- Resolution: Fixed > Implementation for store() and exists() > --------------------------------------- > > Key: DDLUTILS-197 > URL: https://issues.apache.org/jira/browse/DDLUTILS-197 > Project: DdlUtils > Issue Type: Improvement > Components: Core (No specific database) > Reporter: Rijk van Haaften > Assignee: Thomas Dudziak > Priority: Minor > Fix For: 1.1 > > > /** > * Determines whether the given dyna bean is stored in the database. > * > * @param dynaBean The bean > * @param connection The connection > * @return <code>true</code> if this dyna bean has a primary key > */ > protected boolean exists(Connection connection, Database model, DynaBean > dynaBean) > { > SqlDynaClass dynaClass = model.getDynaClassFor(dynaBean); > SqlDynaProperty[] primaryKeys = dynaClass.getPrimaryKeyProperties(); > > if (primaryKeys.length == 0) > { > return false; > } > > String tableName = > _builder.getDelimitedIdentifier(dynaClass.getTable().getName()); > StringBuilder sql = new StringBuilder("SELECT * FROM " + tableName + > " WHERE "); > > for (int i = 0; i < primaryKeys.length; i++) > { > if (i > 0) > { > sql.append(" AND "); > } > String key = primaryKeys[i].getColumn().getName(); > sql.append(_builder.getDelimitedIdentifier(key)); > sql.append('='); > sql.append('\''); > sql.append(dynaBean.get(key)); > sql.append('\''); > } > > Statement statement = null; > ResultSet resultSet = null; > boolean exists = false; > try > { > statement = connection.createStatement(); > resultSet = statement.executeQuery(sql.toString()); > exists = resultSet.next(); > resultSet.close(); > } > catch (SQLException ex) > { > throw new DatabaseOperationException("Error while reading from > the database", ex); > } > finally > { > closeStatement(statement); > } > return exists; > } > > /** > * [EMAIL PROTECTED] > */ > public void store(Database model, DynaBean dynaBean) throws > DatabaseOperationException > { > Connection connection = borrowConnection(); > > try > { > if (exists(connection, model, dynaBean)) > { > update(connection, model, dynaBean); > } > else > { > insert(connection, model, dynaBean); > } > } > finally > { > returnConnection(connection); > } > } -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.