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?]