20.6 Eine Beispielabfrage
 
Ein Beispiel soll zu Beginn die Programmkonzepte für JDBC deutlich machen, bevor wir im Folgenden das Java-Programm weiter sezieren.
Damit wir für die anderen Beispiele die Verbindungsdaten zentral haben und leicht ändern können, legen wir zunächst eine Klasse mit den Informationen an.
Listing 20.3
com/javatutor/insel/jdbc/DatabaseConstants.java
package com.javatutor.insel.jdbc;
public final class DatabaseConstants
{
private DatabaseConstants() { /* Empty */ }
public static final String DRIVER = "com.ibm.db2.jcc.DB2Driver";
public static final String PROTOCOL = "jdbc:derby:net://localhost:1527/";
public static final String DATABASE = "OpenGeoDB;create=true";
public static final String URL = PROTOCOL + DATABASE;
public static final String USER = "user";
public static final String PASS = "pass";
}
Das Programm in der Klasse FirstSqlAccess baut eine Verbindung zur Datenbank OpenGeoDB auf. Der Datenbankserver muss laufen, und die Tabellen mit Informationen müssen eingefügt sein.
Listing 20.4
com/javatutor/insel/jdbc/FirstSqlAccess.java
package com.javatutor.insel.jdbc;
import static com.javatutor.insel.jdbc.DatabaseConstants.*;
import java.sql.*;
public class FirstSqlAccess
{
public static void main( String[] args )
{
try
{
Class.forName( DRIVER );
}
catch ( ClassNotFoundException e )
{
System.err.println( "Keine Treiber-Klasse!" );
return;
}
Connection con = null;
try
{
con = DriverManager.getConnection( URL, USER, PASS );
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery( "SELECT * FROM GEODB_TYP" );
while ( rs.next() )
System.out.printf( "%s, %s, %s%n", rs.getString(1),
rs.getString(2), rs.getString(3) );
rs.close();
stmt.close();
}
catch ( SQLException e )
{
e.printStackTrace();
return;
}
finally
{
if ( con != null )
try { con.close(); } catch ( SQLException e ) { e.printStackTrace(); }
}
}
}
Dem Beispiel ist in diesem Status schon die aufwändige Fehlerbehandlung anzusehen. Das Schließen vom ResultSet und Statement ist vereinfacht, aber okay, weil auf jeden Fall die Connection geschlossen wird.
Hinweis Es ist möglich, auch ohne ODBC-Eintrag Zugriff auf eine Access-Datenbank aufzubauen – nützlich ist das zum Beispiel dann, wenn der Name der Datenbank erst später bekannt wird.
con = DriverManager.getConnection( "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};
DBQ=c:/daten/test.mdb","name","pass" );
|
|