import java.sql.*;

public class BatchEx
     {
     public BatchEx(String driver,
		    String url,
		    String user,
		    String passwd)
     {
     Connection conn;
     Statement stmt;
     String    query;
     
     try
	  {
	  Class.forName(driver);
	  conn = DriverManager.getConnection(url, user, passwd);
	  conn.setAutoCommit(false);
          
	  stmt = conn.prepareStatement("INSERT INTO emp_info " +
				       "(Id, Name, Commission, Salary, " +
				       "Address, DOB, JoinDate, Remarks) " +
				       "VALUES (?, ?, ?, ?, ?, ?, ?, ?)");
	  
	  query = "INSERT INTO emp_info (Id, Name, Commission, Salary, " +
	  "Address, DOB, JoinDate, Remarks) VALUES (1, \'ANXGCTQIVHXZL\', " +
	  "91, 9193, \'Address 1\', 1977-11-25, 2004-11-24, \'Good\')";
	  stmt.addBatch(query);
	  
	  query = "INSERT INTO emp_info (Id, Name, Commission, Salary, " +
	  "Address, DOB, JoinDate, Remarks) VALUES (2, \'OOUZTCGPBBH\', " +
	  "51, 5554, \'Address 2\', 1977-11-25, 2004-11-24, \'Good\')";
	  stmt.addBatch(query);
	  
	  /*
	    This query fails because of key constraint. So queries after
	    this will be rejected by the driver.
	  */
	  query = "INSERT INTO emp_info (Id, Name, Commission, Salary, " +
	  "Address, DOB, JoinDate, Remarks) VALUES (1, \'ANXGCTQIVHXZL\', " +
	  "91, 9193, \'Address 1\', 1977-11-25, 2004-11-24, \'Good\')";
	  stmt.addBatch(query);
	  
	  query = "INSERT INTO emp_info (Id, Name, Commission, Salary, " +
	  "Address, DOB, JoinDate, Remarks) VALUES (3, \'RWJQMBYEFTXJTGMYJA\', " +
	  "39, 1305, \'Address 3\', 1977-11-25, 2004-11-24, \'Good\')";
	  stmt.addBatch(query);
	  
	  query = "INSERT INTO emp_info (Id, Name, Commission, Salary, " +
	  "Address, DOB, JoinDate, Remarks) VALUES (4, \'NTEEQAQKPQWCGS\', " +
	  "72, 4558, \'Address 4\', 1977-11-25, 2004-11-24, \'Good\')";
	  stmt.addBatch(query);
	  
	  query = "INSERT INTO emp_info (Id, Name, Commission, Salary, " +
	  "Address, DOB, JoinDate, Remarks) VALUES (5, \'QWXFRMFYNFLWC\', " +
	  "9, 8156, \'Address 5\', 1977-11-25, 2004-11-24, \'Good\')";
	  stmt.addBatch(query);
	  
	  stmt.executeBatch();
	  conn.commit();
	  }
     catch (BatchUpdateException ex)
	  {
	  ex.printStackTrace();
	  }
     catch (SQLException ex)
	  {
	  ex.printStackTrace();
	  }
     catch (ClassNotFoundException ex)
	  {
	  ex.printStackTrace();
	  }

     }
     
     public static void main(String[] args)
     {
     if (args.length != 4)
	  {
	  System.out.println("Usage : BatchEx driver_class url user passwd");
	  System.exit(0);
	  }
     
     new BatchEx(args[0], args[1], args[2], args[3]);
     }
     }
