Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Besseres Verständnis - Class.forName(com.mysql.jdbc.Driver).newInstance ();

Dieser Code zwingt die Klasse, die den MySQL-Treiber darstellt, zu laden und zu initialisieren. In Java wird eine Klasse nur geladen, wenn es notwendig ist dass die Klasse geladen wird. Da JDBC-Code normalerweise nie direkt auf den Treiber verweist, würde er ohne Class.forName nicht geladen werden (oder einige andere gleichwertige Alternativen).

Beachten Sie, dass beide laden müssen und initialisieren die Klasse, das sind 2 verschiedene Dinge.

Beachten Sie außerdem, dass es nicht notwendig ist, .newInstance() aufzurufen -- der statische Initialisierer des Treibers registriert sich bereits selbst als JDBC-Treiber.

Beachten Sie schließlich, dass dies bei der Service Loader API der Fall ist es ist normalerweise nicht notwendig, Class.forName() aufzurufen, um den Treiber zu laden:er kann automatisch geladen werden.