import java.sql.*; // for JDBC import java.util.*; // for Scanner and its related exceptions import java.io.*; // for more file-related stuff /** * grabs the current date from the Oracle student database * (1st JDBC example) * * @author Ann Burroughs * @author (modified by) Sharon Tuttle * @version 3-11-13 */ public class GetDate { /** * tries to query for today's date from the * HSU Oracle student database and print * it to the screen * * @param args not used */ public static void main(String args[]) { // turn off looking that the IPv6 stack to avoid // a 2 minute wait for V6 timeout System.setProperty("java.net.preferIPv4Stack", "true"); try { // load jdbc driver for Oracle Class.forName("oracle.jdbc.driver.OracleDriver"); BufferedReader fromStream; String username = "java"; String password = ""; // read this username's password from a local // file pwd-file.txt (which we'll give // permission 600!!!) try { fromStream = new BufferedReader( new FileReader("pwd-file.txt")); password = fromStream.readLine(); fromStream.close(); } catch (FileNotFoundException exc) { System.out.println("GetDate: could not " + "open pwd-file.txt"); } catch (IOException exc) { System.out.println("GetDate: IOError: " + exc.getMessage()); } // make a Connection object // (make the connection to Oracle on // on cedar, for this username and password) System.out.println("about to make a Connection"); Connection con = DriverManager.getConnection( "jdbc:oracle:thin:@cedar:1521:student", username, password); // Connection class has a method createStatement, // it returns a Statement object. System.out.println("about to make a Statement object"); Statement stmt = con.createStatement(); // it is convenient, but not required, // to store the Oracle statement desired // in a String variable String query = "select sysdate " + "from dual"; // NO ; IN QUERY STR!!!! // now -- Statement has an executeQuery method // it expects a String containing the desired // query // it returns a ResultSet object System.out.println("about to try executeQuery"); ResultSet rS = stmt.executeQuery(query); // ResultSet method next // tries to iterate to the "next" row // in the ResultSet -- you DO have to // have to call it for the 1st row // (returns false if it can't) rS.next(); // ResultSet has MANY get methods for getting // values from the current row // (some ARE by position, others ARE by // column name), and you ALSO indicate // by the choice of method what TYPE // Java should try to treat that value as // (1 is the FIRST projected result) String todaysDate = rS.getString(1); System.out.println(todaysDate); // COURSE STYLE STANDARD -- CLOSE your statement // and connection when you are done!!! stmt.close(); con.close(); } // any other exceptions? catch and output here: catch (Exception exc) { System.out.println(exc); } } // end main } // end GetDate class