2015-10-28 16 views
5

seguente codice:È necessario il meccanismo Class.forName()?

Class.forName(dbDriver); // "org.postgres.Driver" or "com.mysql.jdbc.Driver" 

è/era necessario aprire connessione JDBC.

Ho sentito dire che non è più necessario con i moderni driver JDBC. Tuttavia non posso rimuoverlo nel mio progetto, perché sto ricevendo l'eccezione No suitable driver found. Sto usando postgresql-9.1-901.jdbc3.jar, Java7 e tomcat7.

Quando posso omettere il costrutto Class.forName(...)?

+0

driver jdbc4. Poiché anche il livello java tra database e java si è evoluto (tipi più recenti), vale la pena. –

+0

Si sta utilizzando il driver JDBC 3, potrebbe non contenere il file dei servizi richiesto per il caricamento del driver JDBC 4. –

risposta

9

Class.forName() non è necessario da JDBC 4.0.

Ecco un estratto da Java Tutorials on JDBC.

Nelle versioni precedenti di JDBC, per ottenere una connessione, per prima cosa doveva inizializzare il driver JDBC chiamando il metodo Class.forName. Questi metodi richiedevano un oggetto di tipo java.sql.Driver. Ogni driver JDBC contiene una o più classi che implementano l'interfaccia java.sql.Driver. I driver per Java DB sono org.apache.derby.jdbc.EmbeddedDriver e org.apache.derby.jdbc.ClientDriver e quello per MySQL Connector/J è com.mysql.jdbc.Driver. Consultare la documentazione del driver DBMS su per ottenere il nome della classe che implementa l'interfaccia java.sql.Driver.

Tutti i driver JDBC 4.0 che si trovano nel percorso della classe sono caricati automaticamente . (Tuttavia, è necessario caricare manualmente i driver prima di JDBC 4.0 con il metodo Class.forName.) Sono disponibili

Problemi correlati