Inicializacia JDBC ovladaca

Robert Novotny robert.novotny na upjs.sk
Čtvrtek Duben 2 00:24:46 CEST 2009


Dobry den,
zamyslel som sa nad ukazkovymi kodmi inicializacie JDBC ovladaca a mam  
mozno hlupu otazku.
Takmer kazda prirucka / tutorial tvrdi, ze JDBC ovladac sa inicializuje  
nasledovne:

   try {
     Class.forName("com.mysql.jdbc.Driver");
   } catch (ClassNotFoundException e) {
   e.printStackTrace();
   }

a pripojenie sa ziska cez Connection = DriverManager.getConnection(...),  
ale to nie je dolezite.

Nie je predsa lepsie rovno vytvorit instanciu ovladaca a vyhnut sa  
odchytavaniu
nanajvys obskurnej ClassNotFoundException?

   import com.mysql.jdbc.Driver;

   Driver driver = new Driver();
   Connection = DriverManager.getConnection(...)

Pripadne nezvyklejsie:
   new Driver();
   Connection = DriverManager.getConnection(...)

Dokumentacia tvrdi, ze Class.forName inicializuje ovladac
a zaregistruje ho v DriverManageri (zvycajne v bloku statickej  
inicializacie
v implementacii Drivera). Ale podla JLS sa toto iste musi stat
pred vytvorenim prvej instancie konkretneho Drivera.

Chapem nieco zle? Alebo vsetci opisuju z prazdroja, ktory ustanovil,
ze driver sa inicializuje cez Class.forName? Alebo sa vsetci
boja vytvorenia instancie, ktora sa nepouziva? [Ci vytvorenia
instancie, ktora sa nevlozi do premennej?]



Další informace o konferenci Konference