import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;

import com.mysql.jdbc.Connection;

public class JDBCSelect2 {
	private static void printResultSet(ResultSet rs) throws SQLException {
		ResultSetMetaData rsmd = rs.getMetaData();
		int noColumns = rsmd.getColumnCount();
		for (int i = 1; i < noColumns; i++) {
			System.out.print(rsmd.getColumnLabel(i) + "\t");
		}
		System.out.println();

		while (rs.isLast() == false) {
			rs.next();
			for (int i = 1; i < noColumns; i++) {
				System.out.print( rs.getObject(i)+"\t" );
			}
			System.out.println();
		}

	}
	public static void main(String[] args) {
		try {
			Class.forName("com.mysql.jdbc.Driver");
		} catch (ClassNotFoundException e) {
			System.err.println("Driver class not found");
			e.printStackTrace();
		}
		Connection con = null;

		try {
			con =
				(Connection) DriverManager.getConnection(
					"jdbc:mysql://localhost/jdbctest/",
					"mario",
					"thePassword");
		} catch (SQLException e1) {
			System.err.println("Error establishing database connection");
			Throwable t = e1;
			while (t != null) {
   			System.err.println("Type: " + t.getClass().getName());
      		System.err.println("Message: " + t.getMessage());
      		System.err.println("-----");
      		t = t.getCause();
			}
		}

		Statement stmt = null;
		try {
			stmt = (Statement) con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
		} catch (SQLException e2) {
			System.err.println("Error creating SQL-Statement");
			Throwable t = e2;
			while (t != null) {
   			System.err.println("Type: " + t.getClass().getName());
      		System.err.println("Message: " + t.getMessage());
      		System.err.println("-----");
      		t = t.getCause();
			}
		}

		try {
			ResultSet uprs = (ResultSet) stmt.executeQuery("SELECT * FROM EMPLOYEE;");
			printResultSet(uprs);
			uprs.moveToInsertRow();
			uprs.updateString("FNAME","Mario");
			uprs.updateString("LNAME","Jeckle");
			uprs.updateInt("SSN",111111111);
			uprs.insertRow();
			uprs = (ResultSet) stmt.executeQuery("SELECT * FROM EMPLOYEE;");
			printResultSet(uprs);
		} catch (SQLException e3) {
			System.err.println("Error selecting values from table EMPLOYEE");
			Throwable t = e3;
			while (t != null) {
   			System.err.println("Type: " + t.getClass().getName());
      		System.err.println("Message: " + t.getMessage());
      		System.err.println("-----");
      		t = t.getCause();
			}
		}
	}
}
