import java.sql.*;
import java.util.*;

public class runPerfChecker implements Runnable {
  Thread t;
  static String username = "";
  static String password = "";
  static String url = "";
  int num;

  public static void main(String args[]){
	username = args[0];
	password = args[1];
	url = args[2];
    System.out.println("Using URL " + url);
    for (int i = 1; i < Integer.parseInt(args[3]); i++) {
  	  System.out.println("Starting " + i);
      runPerfChecker r = new runPerfChecker(i);
    }
  }

  runPerfChecker(int num) {
    t = new Thread(this);
    t.start();
    this.num = num;
  }

  public void run() {
    perfChecker c = new perfChecker(username,password,url,num);
  }
}

class perfChecker {
  perfChecker(String u, String p, String ul, int num) {
	try {
      String username = u;
      String password = p;
      String url = ul;
      String sql = "";
      if (ul.indexOf("mysql") == 0) {
        url = "jdbc:mysql://localhost/test";
        Class.forName ("com.mysql.jdbc.Driver").newInstance();
        username = u;
        password = p;
        sql = "select p.a, c.b " +
                "from parent p " +
                "inner join child c " +
                "on c.a = p.a " +
                  "and p.a = ?";
      }
      else {
        url = "jdbc:oracle:thin:@localhost:1521:test10g";
        Class.forName ("oracle.jdbc.driver.OracleDriver").newInstance ();
        username = u;
  	    password = p;
	    sql = "select p.a, c.b " +
                "from parent p, child c " +
                "where p.a = c.a " +
                  "and p.a = ?";
      }
      Connection conn = DriverManager.getConnection(url,username,password);
      java.util.Date d1 = new java.util.Date();
      PreparedStatement pst = conn.prepareStatement(sql);
      for ( int i = 1 ; i <= 100; i++) {
        int d = (int)(Math.random() * 10000);
        pst.setInt(1,d);
        pst.execute();
      }

      System.out.println(num + " " + (new java.util.Date().getTime() - d1.getTime()));
    }
    catch (Exception e) {
      System.out.println(e);
    }
  }
}
