Package br.com.triadworks.dbunit.vendors.oracle

Source Code of br.com.triadworks.dbunit.vendors.oracle.OracleDbUnitConnectionCreator

package br.com.triadworks.dbunit.vendors.oracle;

import java.sql.Connection;

import javax.sql.DataSource;

import org.dbunit.DatabaseUnitException;
import org.dbunit.database.DatabaseConfig;
import org.dbunit.database.IDatabaseConnection;
import org.dbunit.ext.oracle.Oracle10DataTypeFactory;
import org.dbunit.ext.oracle.OracleConnection;
import br.com.triadworks.dbunit.connection.DefaultDbUnitConnectionCreator;
import br.com.triadworks.dbunit.util.JdbcMetaDataExtractor;

public class OracleDbUnitConnectionCreator extends DefaultDbUnitConnectionCreator {

  public OracleDbUnitConnectionCreator(DataSource dataSource) {
    super(dataSource);
  }

  @Override
  public IDatabaseConnection create() {
   
    Connection jdbcConnection = this.getConnection();
   
    JdbcMetaDataExtractor extractor = new JdbcMetaDataExtractor(jdbcConnection);
    String userName = extractor.getUserName();
   
    try {
      IDatabaseConnection dbUnitConn = new OracleConnection(jdbcConnection, userName);
      DatabaseConfig config = dbUnitConn.getConfig();
      // oracle 10g
      config.setProperty(DatabaseConfig.PROPERTY_DATATYPE_FACTORY, new Oracle10DataTypeFactory());
      // receycle bin (skip oracle 10g recycle bin system tables if enabled)
      config.setProperty(DatabaseConfig.FEATURE_SKIP_ORACLE_RECYCLEBIN_TABLES, Boolean.TRUE);
 
      return dbUnitConn;
    } catch (DatabaseUnitException e) {
      throw new IllegalStateException(
          "It's not possible to create a Oracle DbUnit connection: "
              + e.getMessage(), e);
    }
  }
 
}
TOP

Related Classes of br.com.triadworks.dbunit.vendors.oracle.OracleDbUnitConnectionCreator

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.