import java.sql.Array;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;

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

		try {
			con =
				(Connection) DriverManager.getConnection(
					"jdbc:mysql://localhost/jdbctest/",
					"mario",
					"thePassword");
		} catch (SQLException sqle) {
			System.err.println("Error establishing database connection");
			Throwable t = sqle;
			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();
		} catch (SQLException sqle) {
			System.err.println("Error creating SQL-Statement");
			Throwable t = sqle;
			while (t != null) {
   			System.err.println("Type: " + t.getClass().getName());
      		System.err.println("Message: " + t.getMessage());
      		System.err.println("-----");
      		t = t.getCause();
			}
		}

		try {
			ResultSet rs = stmt.executeQuery("SELECT * FROM EMPLOYEE;");
			while (!rs.isLast()) {
				rs.first();
				System.out.print(rs.getString("FNAME") + "\t");
				Array cars = rs.getArray("CAR");
				ResultSet carsRS = cars.getResultSet();
				System.out.print("(");
				while (!carsRS.isLast()) {
					rs.first();
					System.out.print(carsRS.getString("CAR"));
					carsRS.next();
				}
				System.out.println(")");
				rs.next();
			}
		} catch (SQLException sqle) {
			System.err.println("Error selecting values from table EMPLOYEE");
			Throwable t = sqle;
			while (t != null) {
   			System.err.println("Type: " + t.getClass().getName());
      		System.err.println("Message: " + t.getMessage());
      		System.err.println("-----");
      		t = t.getCause();
			}
		}
	}
}
