/*
Use jdk 1.3 compiler(javac) and executible(java) (JDBC 2 compliant) that comes with ORALCE 9i

Note that there is a before insert row trigger on the table clients.

SQL script needed
 */
import java.sql.*;

class InsertRows {
  public static void main(String args []) 
      throws SQLException {

    DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());

    Connection conn = 
        DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:athena",
                                    "scott", "tiger");

    Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
                                          ResultSet.CONCUR_UPDATABLE);

    ResultSet uprs = stmt.executeQuery("SELECT ID, FIRST_NAME, LAST_NAME " +
                                       "FROM CLIENTS");
    uprs.moveToInsertRow();
      
    uprs.updateInt(1,20);      
    uprs.updateString(2, "Jusung");      
    uprs.updateString(3, "Yang");      
    uprs.insertRow();

    uprs.updateInt(1,30);
    uprs.updateString(2, "Julie");
    uprs.updateString(3, "Chen");
    uprs.insertRow();

    uprs.beforeFirst();

    System.out.println("New data will not be visible unless query is rerun");
	System.out.println("Table CLIENTS before insertion:");

    while (uprs.next()) {
      String fname = uprs.getString(2);
      String lname = uprs.getString(3);
      int id = uprs.getInt(1);
      System.out.println(fname + " " + lname + "   " + id );
    }

	uprs = stmt.executeQuery("SELECT ID, FIRST_NAME, LAST_NAME " +
										   "FROM CLIENTS");
										   
	System.out.println("Table CLIENTS after insertion:");

		while (uprs.next()) {
		  String fname = uprs.getString(2);
		  String lname = uprs.getString(3);
		  int id = uprs.getInt(1);
		  System.out.println(fname + " " + lname + "   " + id );
		}

    uprs.close();
    stmt.close();
    conn.close();
  }
}