View Javadoc

1   package com.imcode.db.commands;
2   
3   import com.imcode.db.DatabaseConnection;
4   import com.imcode.db.DatabaseException;
5   import org.apache.commons.lang.StringUtils;
6   
7   public class UpdateTableWhereColumnEqualsDatabaseCommand extends ColumnValuesDatabaseCommand {
8   
9       private final String columnName;
10      private Object columnValue;
11  
12      public UpdateTableWhereColumnEqualsDatabaseCommand(String tableName, String columnName,
13                                                         Object columnValue, Object[][] columnNamesAndValues) {
14          super(tableName, columnNamesAndValues);
15          this.columnName = columnName;
16          this.columnValue = columnValue;
17      }
18  
19      public Object executeOn(DatabaseConnection connection) throws DatabaseException {
20          String[] columnNamePlaceHolderPairs = new String[columnNames.length];
21          for ( int i = 0; i < columnNames.length; i++ ) {
22              columnNamePlaceHolderPairs[i] = columnNames[i]+ " = ?";
23          }
24          Object[] parameters = new Object[columnValues.length+1];
25          System.arraycopy(columnValues, 0, parameters, 0, columnValues.length);
26          parameters[parameters.length-1] = columnValue ;
27          return new Integer(connection.executeUpdate("UPDATE "+tableName+" SET "+ StringUtils.join(columnNamePlaceHolderPairs, ", ")+ " WHERE "+columnName +" = ?", parameters)) ;
28      }
29  }