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.

img171_8
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