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

public class Ex2
{
    Connection mainConnection = null;
    Statement mainStatement = null;

    ResultSet mainResultSet = null;

    public static void main(String args[])
    {
 Ex2 e = new Ex2();
    }

    public Ex2()
    {
        ConnectToDB();
 
 SearchAllTuples();

 ShowMetaData();

 ShowAllTuples();
 

    }
 
 

    public void SearchAllTuples()
    {
 try
 {
     System.out.println(" ** Selecting all tuples in the table **" );
     mainResultSet = mainStatement.executeQuery( "select * from info; " );
 }
 catch( Exception e )
 { System.out.println( " Error : " + e.toString() ); }
    }

    public void ShowMetaData()
    {
 try
 {
     System.out.println("\n ** Obtaining Meta Data ** " );
     ResultSetMetaData meta = mainResultSet.getMetaData();
     for( int col=1; col<=meta.getColumnCount(); col++ )
  System.out.println( "Column: " + meta.getColumnName(col) + "\t, Type: " + meta.getColumnTypeName(col) );
 }
 catch( Exception e )
 { System.out.println( " Error : " + e.toString() ); }

    }

    public void ShowAllTuples()
    {
 try
 {
 
     ResultSetMetaData meta = mainResultSet.getMetaData();

     System.out.println("\n ** Showing all Tuples ** " );
     int tupleCount=1;
      while( mainResultSet.next() )
     {
  System.out.print( "Tuple " + tupleCount++ + " : " );
  for( int col=1; col<=meta.getColumnCount(); col++)
       System.out.print( "\""+mainResultSet.getString( col )+"\"," );
  System.out.println();
     }
        }
 catch( Exception e )
 { System.out.println(" Error : " + e.toString() ); }

 System.out.println();
    }

 
 
    public void ConnectToDB()
    {
 // loading Informix driver
 try
 {
         System.out.print("Looking for Informix's jdbc-odbc driver ... ");
            Class.forName("com.informix.jdbc.IfxDriver");
            System.out.println("loaded.\n");
 
     String URL = "jdbc:informix-sqli://esfahaan.usc.edu:1425";

            Properties p = new Properties();
            p.put("INFORMIXSERVER", "dimlab");
            p.put("database", "temp585");
            p.put("user", "temp585");
            p.put("password", "temp585");
 
            Connection mainConnection = DriverManager.getConnection(URL, p);

     mainStatement = mainConnection.createStatement();
 

       }
       catch( Exception e )
       {
     System.out.println( "Error connecting to DB: "+ e.toString() );
     System.exit(-1);
       }
    }
}