ODBC

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):

  1. Åpne Kontrollpanelet (Start/Settings/Control Panel)
  2. Velg Administrative verktøy
  3. Klikk på ODBC-datakilder, og velg fliken Brukerdatakilde (User Data Sources).
  4. Trykk på knappen "Legg til..."
  5. Velg Microsoft Access Driver.
  6. Trykk på Finish-knappen.
  7. Du er nå kommet inn i en dialog med navn "Konfigurer ODBC-driver for Microsoft Access". Bestem deg for et navn på datakilden, og skriv det inn i øverste felt i vinduet. Dette er navnet du skal bruke i Java-programmet ditt. Dersom du ønsker å lagre ytterligere opplysninger om databasen, kan du fylle ut feltet "Beskrivelse". Det er ikke nødvendig å skrive noe her. Trykk ikke OK, men:  
  8. Trykk på "Velg...". Du skal nå knytte dette navnet til den fysiske datafilen der databasen ligger. 
  9. Eksempeldatabasen ligger på c:\Program Files\Microsoft Office\Samples\Gastronor.mdb. Let deg fram til filen, og klikk på filnavnet i listeboksen til venstre. Trykk OK. Du kommer nå tilbake til dialogen "Konfigurer ODBC-driver for Microsoft Access".
  10. Trykk OK. Du er nå tilbake der du startet. Kontroller at "Gastronor" (eller hva du nå skrev inn som databasenavn i pkt. 6) er kommet med i listen over brukerdatakilder. 

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