[
https://issues.apache.org/jira/browse/DDLUTILS-197?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Rijk van Haaften updated DDLUTILS-197:
--------------------------------------
Description:
/**
* 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);
}
}
was:
/**
* 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);
}
}
> 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
>
> /**
> * 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.