/* File name : JDBCconnect.java */

import java.sql.*;
import java.io.*;
import java.util.*;
import java.lang.String;

class JDBCconnect {

   Connection conn;
   String hostname, database;

   public JDBCconnect(String sys, String data) {
      hostname = sys;
      database = data;
   }

   public boolean OpenConnection() throws SQLException, IOException {

      try {
         Class.forName("oracle.jdbc.driver.OracleDriver");
      }
      catch (ClassNotFoundException e) {
         System.out.println("Could not load the driver.");
         e.printStackTrace();
         return false;
      }
      try {
         if (hostname.equals("omega")) {
            if (database.equals("CSE1"))
               conn = DriverManager.getConnection
               // substitute with your username and password
               ("jdbc:oracle:thin:username/password@omega:1521:cse1");
         }
         return true;
      }
      catch (SQLException sql) {
         sql.printStackTrace();
         return false;
      }
   }

   public void CloseConnection() throws SQLException {
      conn.close();
   }


   public ResultSet ListAll() {
      try {
         Statement st = conn.createStatement();
         ResultSet rset = st.executeQuery("select username from all_users order by username");
         return rset;
      }
      catch (SQLException sql) {
         sql.printStackTrace();
         return null;
      }
   }

   public static void main( String args[] )
   {
      ResultSet reset;
      try {
         JDBCconnect connect = new JDBCconnect("omega","CSE1");
         // JDBCconnect connect = new JDBCconnect(args[0], args[1]);
         if ( connect.OpenConnection() ) {
            reset = connect.ListAll( );

            while( reset.next() ) {
               System.out.println(reset.getString("username"));
            }
         }

         connect.CloseConnection();
      }
      catch (SQLException exception) {
         System.out.println("\nSQLException" + exception.getMessage()+"\n");
      }
      catch ( IOException e) {
         e.printStackTrace();
      }
   }
}