/*********************************************************/ /* Quelltext: jdb3.java (TEXTVERSION) */ /* Zweck: Einfaches Beispiel eines JDBC-Zugriffs */ /* auf eine RDB, mit modifizierter SELECT- */ /* Anfrage */ /* Stand: 01.12.2003 */ /* Verfasser: Prof. Dr. G. Buechel */ /* */ /*********************************************************/ import java.io.*; import java.sql.*; class jdb3 {public static void main(String[] args) { String protokoll = "jdbc:informix-sqli://"; String treiber = "com.informix.jdbc.IfxDriver"; String host = "XXXXXXXXXX" + ":"; String port = "XXXXX"; String ifxServer = "XXXXXXXXXXXXX"; String dbName = "fhkoeln"; String dbPort = port + "/" + dbName + ":"; Connection dbConnection=null; String estr = new String(); /* Treiber laden */ try { Class.forName(treiber).newInstance(); System.out.println("Treiber erfolgreich geladen!\n"); } catch (Exception ex) { System.out.println("ERROR: Treiber konnte nicht geladen werden!"); ex.printStackTrace(); } /* VERBINDUNGSAUFBAU */ String dbUrl = protokoll + host + dbPort + ifxServer; System.out.println("dbURL = \"" + dbUrl + "\""); try { /* Erstellung Datenbank-Verbindungsinstanz. */ dbConnection = DriverManager.getConnection(dbUrl); System.out.println("Verbindungsaufbau zur Datenbank="+dbName+" erfolgreich!\n"); } catch (SQLException sqlex) { System.out.println("ERROR: Datenbank-Verbindung kam nicht zu Stande!"); System.err.println("SQL-Fehler: " + sqlex.getMessage()); } /* SELECT-Anfrage */ Statement queryStmt; ResultSet queryRS; int queryRowCount = 0; try { /* Statement-Objekt wird erzeugt */ queryStmt = dbConnection.createStatement(); /* SQL-Select wird an Query-Statement queryStmt * uebergeben. Das Ergebnis der SELECT-Anfrage * wird in dem ResultSet-Objekt queryRS gespeichert */ System.out.println("Studenten mit MATRIKELNR > EINGABE "); System.out.println("Bitte geben Sie eine Untergrenze ein "); estr=einstring(); System.out.println("Ihre Eingabe ->"+estr+"<- !"); queryRS = queryStmt.executeQuery( "SELECT MATRIKELNR, NAME, VORNAME , TELEFON , SOZIALBTG " + "FROM STUDENT " + "WHERE MATRIKELNR > " + estr + "ORDER BY MATRIKELNR"); /* Mit der next()-Methode wird das ResultSet durchlaufen. * Verweist die next()-Methode auf ein Ergebniselement, kann man mit * den zugehoerigen Datentyp-Methoden getXXX() die * entsprechenden Spaltenwerte auslesen. */ System.out.println("Student, Vorname : Matrikel-Nr: Telefon: Sozialbeitrag:"); while (queryRS.next()) { int matnr = queryRS.getInt("MATRIKELNR"); String nachname = queryRS.getString("NAME").trim(); String vorname = queryRS.getString("VORNAME").trim(); String telnr = queryRS.getString("TELEFON").trim(); double sozbetr = queryRS.getDouble("SOZIALBTG"); System.out.println(nachname + "," + vorname + " \t " + matnr + " \t " + telnr + " \t " +sozbetr + " "); queryRowCount ++; } System.out.println("Es sind " + queryRowCount + " Datensaetze gefunden worden.\n"); /* Statement-Objekt wird geschlossen */ queryStmt.close(); /* Verbindungsinstanz zur Datenbank wird geschlossen */ dbConnection.close(); } catch(SQLException ex) { System.err.println("SQL-Fehler: " + ex.getMessage()); ex.printStackTrace(); } } static String einstring() { int rc; String st1= new String(); BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); do { rc=0; //Fehlervermutung try { st1=in.readLine().trim(); rc=1; //kein Fehler <=> rc=1 } catch(IOException e) { System.out.println("Schwerer Inputfehler: "+e.getMessage()); System.out.println("Bitte korrekten Doublewert eingeben:"); } } while (rc==0); return st1; } }