venerdì 8 novembre 2013

Q46

Which code fragment is required to load a JDBC 3.0 driver?

A.
DriverManager.loadDriver ("org.xyzdata.jdbc.NetworkDriver");

B.
Class.forName("org.xyzdata.jdbc-NetworkDriver");

C.
Connection con = Connection.getDriver
("jdbc:xyzdata://localhost:3306/EmployeeDB");

D.
Connection con = DriverManager.getConnection
("jdbc:xyzdata://localhost:3306/EmployeeDB");

 
La risposta è B
Java offre un'interfaccia standard per l'accesso ai database chiamata JDBC.
Il lavoro lo fa la classe java.sql.DriverManager che è responsabile del caricamento dei driver che consentono l'accesso ad un database.
La prima cosa da fare è
try {
Class.forName("drivername");
}
catch (Exception e) {
System.err.println("Class not found!");
}
il metodo forName consente di ottenere un oggetto della classe Class che descrive una classe il cui nome è fornito come stringa (da cui il try .. catch perché la classe potrebbe non esistere).
Questo codice inizializza la classe e questo provvede a registrare il driver presso il DriverManager.
Solo dopo questo possiamo connetterci al db :
String url = "jdbc:odbc:dbname";
Connection db = DriverManager.getConnection(url);
Quindi il programma è in grado di utilizzare un oggetto di una classe che neanche conosce (in questo caso il driver JDBC-ODBC). Questo è possibile grazie al fatto che l'oggetto implementa un'interfaccia (l'interfaccia Connection) conosciuta al programma.


Riferimenti:

Nessun commento:

Posta un commento