String tableName = tables[i].getTableMetaData().getTableName();
    public void execute(IDatabaseConnection connection, IDataSet dataSet)            throws DatabaseUnitException, SQLException    {        IStatementFactory factory = connection.getStatementFactory();        String schema = connection.getSchema();        // this dataset is used to get metadata from database        IDataSet databaseDataSet = connection.createDataSet();        // for each table        ITable[] tables = DataSetUtils.getTables(dataSet);        for (int i = 0; i < tables.length; i++)        {            // use database metadata to get columns datatype            String tableName = tables[i].getTableMetaData().getTableName();            ITableMetaData metaData = databaseDataSet.getTableMetaData(tableName);            // setup insert statement    <            OperationData insertData = INSERT.getOperationData(schema, metaData);            IPreparedBatchStatement insertStatement =                    factory.createPreparedStatement(insertData.getSql(), connection);            // setup update statement            OperationData updateData = UPDATE.getOperationData(schema, metaData);            IPreparedBatchStatement updateStatement =                    factory.createPreparedStatement(updateData.getSql(), connection);            // refresh each table's row            ITable table = dataSet.getTable(tableName);            for (int j = 0; j < table.getRowCount(); j++)            {                // try to update row                int result = executeRowOperation(updateStatement,                        updateData.getColumns(), table, j);                if (result == 0)                {                    // update not sucessful, try insert instead                    executeRowOperation(insertStatement,                            insertData.getColumns(), table, j);                }            }        }    }