package org.prevayler.demos.scalability.jdbc;
import org.prevayler.demos.scalability.*;
import java.sql.*;
import java.io.PrintStream;

abstract class JDBCScalabilitySubject implements ScalabilityTestSubject {
  protected final String connectionURL;
  protected final String user;
  protected final String password;
{
    System.gc();
  }
  protected JDBCScalabilitySubject(  String jdbcDriverClassName,  String connectionURL,  String user,  String password){
    try {
      Class.forName(jdbcDriverClassName);
    }
 catch (    Exception ex) {
      ex.printStackTrace();
      throw new RuntimeException("Exception loading JDBC driver class: " + jdbcDriverClassName);
    }
    this.connectionURL=connectionURL;
    this.user=user;
    this.password=password;
  }
  public String name(){
    return "JDBC";
  }
  public void replaceAllRecords(  int records){
    ((JDBCScalabilityConnection)createTestConnection()).replaceAllRecords(records);
  }
  protected Connection createConnection(){
    try {
      return DriverManager.getConnection(connectionURL,user,password);
    }
 catch (    SQLException sqlx) {
      sqlx.printStackTrace();
      throw new RuntimeException("Exception while trying to connect: " + sqlx);
    }
  }
  public void reportResourcesUsed(  PrintStream out){
  }
}
