Open Database Connectivity (ODBC) er Microsoft-programvare som gjør det mulig for Microsoft-programmer å kommunisere med et uttall forskjellige datakilder, inkludert databasesystemer fra andre leverandører. En ODBC-databasedriver er en del av SDK. Dersom du har opprettet en ODBC-forbindelse til databasen din, trenger du derfor ikke å laste ned spesiell driverprogramvare. (Sun sier imidlertid selv at denne driveren kun er egnet til prototyping, etc., og ikke for profesjonell bruk: "The JDBC-ODBC Bridge driver is recommended for use in prototyping efforts and for cases where no other JDBC technology-based driver exists. If a commercial, all-Java JDBC driver is available, we recommend that it be used instead of the Bridge.")
Vi skal lage en utgave av programmet DatabaseKontakt (side 716) som kommuniserer med en Access-database. For enkelthets skyld bruker vi en eksempeldatabase som leveres sammen med Access. Databasen heter Gastronor, og du får den opp når du starter MS Access. Du kan jo gjerne gjøre deg kjent med databasen på den måten først.
For at Java-programmet vårt skal kunne kommunisere med Gastronor-databasen, må vi sette opp en ODBC-forbindelse til denne databasen. Her kommer en kort oppskrift (og en lang oppskrift med mange skjermdumper, det kan ta noe tid å laste ned den lange oppskriften):
Så til Java-programmet. Se på eksempel 20.1 side 618. Hva trenger vi å forandre på? Eksempeldatabasen har ikke satt brukernavn og passord, vi kan derfor sløyfe det. Navnet på databasedriveren er sun.jdbc.odbc.JdbcOdbcDriver, og databasen har navnet jdbc:odbc:Gastronor. Vi henter fornavn og etternavn fra tabellen ansatte. Da ser programmet slik ut:
import java.sql.*;
class DatabaseKontakt {
public static void main(String[] args) throws Exception {
String databasedriver = "sun.jdbc.odbc.JdbcOdbcDriver";
Class.forName(databasedriver);
String databasenavn = "jdbc:odbc:Gastronor";
Connection forbindelse
= DriverManager.getConnection(databasenavn, "", ""); // ikke brukernavn eller passord
Statement setning = forbindelse.createStatement();
ResultSet res = setning.executeQuery("select * from ansatte");
while (res.next()) {
String fornavn = res.getString("fornavn");
String etternavn = res.getString("etternavn");
System.out.println(fornavn + " " + etternavn);
}
forbindelse.close();
}
}
Utskriften fra programmet blir som følger:
Nancy Davolio
Andrew Fuller
Janet Leverling
Margaret Peacock
Steven Buchanan
Michael Suyama
Robert King
Laura Callahan
Anne Dodsworth
08.03.2001 Else Lervik