Gonilniki

## Gonilniki (drivers)

Posamezni sistemi za upravljanje s podatkovnimi bazami zahtevajo za svoj dostop z vmesnikom JDBC ustrezen JDBC gonilnik. Sun ponuja kot del svoje standardne distribucije premostitveni gonilnik JDBC-ODBC. Ta nam omogoča povezavo s katerokoli podatkovno bazo, ki razume ODBC. Ker je ta gonilnik precej počasen, je primeren bolj za preskušanje in ni priporočljiv za poslovne aplikacije.

Večina ponudnikov sistemov za upravljanje s podatkovnimi bazami nudi svoje gonilnike.

Mesto premostitvenega gonilnika JDBC-ODBC
Če želimo dostopiti do podatkovne baze, moramo najprej naložiti gonilnik. Seveda mora biti gonilnik nameščen na sistem (kar pomeni, da mora biti nameščena ustrezna »jar« datoteka z gonilnikom in navedena v poti (classpath)). Če uporabljamo premostitveni gonilnik JDBC-ODBC, moramo še našo podatkovno bazo registrirati z ODBC (Na sistemi MS Windows uporabimo orodje "ODBC data sources" v nadzornem panoju). Ime razreda gonilnika JDBC-ODBC je sun.jdbc.odbc.JdbcOdbcDriver. Ko je gonilnik naložen, se samodejno registrira s pomočjo orodja »Drivermanager« in je tako pripravljen za tvorbo objekta Connection.
Obstaja več načinov nalaganja gonilnika. Omenimo le naslednjo:
Razred System ima statični seznam lastnosti (Property). Če ta vsebuje lastnost jdbc.drivers nastavljeno na seznam imenov razredov gonilnikov, ločen z dvopičji (":") , bodo ustrezni gonilniki samodejno naloženi in registrirani. Ko zahtevamo povezavo, sistem izbere najbolj primeren gonilnik.
Žal pa ta metoda ni primerna za delo s takoimenovanimi »servleti«. V tem primeru je bolje, da naložimo ustrezen razred dinamično, med samim izvajanjem programa na naslednji način:

    Properties props = new Properties() ;
    FileInputStream in = new FileInputStream("Database.Properties") ;
    props.load(in) ;
    String drivers = props.getProperty("jdbc.drivers") ;
    Class.forName(drivers) ;

Datoteka Database.Properties izgleda tako:

    # Default JDBC driver and database specification
    jdbc.drivers      =  sun.jdbc.odbc.JdbcOdbcDriver
    database.Shop  =  jdbc:odbc:Shop