What Class.forName will do while Loading Drivers

It is used to create an instance of a driver and register it with the DriverManager. When you have loaded a driver, it is available for making a connection with a DBMS.

In Advanced Java, specifically when dealing with database connectivity, the Class.forName method is used to dynamically load the JDBC driver class. JDBC (Java Database Connectivity) is a Java-based API that allows Java applications to interact with relational databases.

When you use Class.forName with the JDBC driver class name as an argument, it triggers the class loader to load and initialize the specified class. This is important because JDBC drivers register themselves with the DriverManager when they are loaded, and the registration process involves the driver class being loaded and instantiated.

For example:

java
Class.forName("com.mysql.cj.jdbc.Driver");

In this case, the Class.forName call loads the MySQL JDBC driver class (com.mysql.cj.jdbc.Driver). This loading process typically involves the static initialization of the driver class, and during this initialization, the driver class registers itself with the DriverManager to make itself available for establishing database connections.

It’s important to note that in newer versions of JDBC (JDBC 4.0 and later), the driver registration can also occur implicitly without using Class.forName. If the JDBC driver JAR file includes a META-INF/services/java.sql.Driver file with the driver class name, the driver can be automatically registered when the application starts, and the Class.forName call may not be necessary. However, explicit loading using Class.forName is still a common practice and ensures compatibility with older JDBC drivers and applications.