sql >> Databasteknik >  >> RDS >> Mysql

Bättre förståelse - Class.forName(com.mysql.jdbc.Driver).newInstance ();

Den koden tvingar klassen som representerar MySQL-drivrutinen att ladda och initiera. I Java laddas inte en klass om den inte är nödvändig att klassen laddas. Eftersom JDBC-kod vanligtvis aldrig direkt refererar till drivrutinen, skulle den inte laddas utan Class.forName (eller något annat likvärdigt alternativ).

Observera att det är nödvändigt att både ladda och initiera klassen, som är 2 olika saker.

Observera också att det inte är nödvändigt att anropa .newInstance() -- den statiska initiatorn för drivrutinen registrerar sig redan som en JDBC-drivrutin.

Slutligen, notera att med Service Loader API det är vanligtvis inte nödvändigt att anropa Class.forName() för att ladda drivrutinen:den kan laddas automatiskt.



  1. Dynamiskt kolumnalias baserat på kolumnvärde

  2. SQL delar upp värden till flera rader

  3. Vilket är det mest rekommenderade sättet att lagra tid i PostgreSQL med Java?

  4. Fel när databas släpps (Kan inte skicka '.test\', felnr:17)