sql >> Database >  >> RDS >> Mysql

Beter begrip - Class.forName(com.mysql.jdbc.Driver).newInstance ();

Die code dwingt de klasse die het MySQL-stuurprogramma vertegenwoordigt, te laden en te initialiseren. In Java wordt een klasse niet geladen tenzij het noodzakelijk is dat de klas wordt geladen. Aangezien JDBC-code meestal nooit rechtstreeks naar de driver verwijst, zou deze niet geladen worden zonder Class.forName (of een ander gelijkwaardig alternatief).

Merk op dat het nodig is om zowel laden en initialiseren de klas, dat zijn 2 verschillende dingen.

Merk ook op dat het niet nodig is om .newInstance() . aan te roepen -- de statische initialisatie van het stuurprogramma registreert zichzelf al als een JDBC-stuurprogramma.

Merk ten slotte op dat met de Service Loader API het is meestal niet nodig om Class.forName() aan te roepen om het stuurprogramma te laden:het kan automatisch worden geladen.



  1. datum en tijd vergelijken php

  2. Mysql join-query voor meerdere tags (veel-op-veel-relatie) die overeenkomt met ALLE tags?

  3. Waarde splitsen van één veld naar twee

  4. Moet ik één grote SQL Select-instructie gebruiken of meerdere kleine?