JDBC Tutorials - Herong's Tutorial Notes
Dr. Herong Yang, Version 2.11

Loading Driver Class with Class.forName()

This section describes how to load Microsoft JDBC Driver 1.0 class with Class.forName() method.

The first step of using JDBC to connect to SQL Server is to load the JDBC driver class. To do this you need to use the Class.forName() method to load the driver class, com.microsoft.sqlserver.jdbc.SQLServerDriver, which represents the Microsoft JDBC Driver.

Here is my sample program to load Microsoft JDBC Driver 1.0 class:

/**
 * ConnectionTest1.java
 * Copyright (c) 2007 by Dr. Herong Yang. All rights reserved.
 */
import java.sql.*;
public class ConnectionTest1 {
  public static void main(String [] args) {
    Connection con = null;
    try {

// Load Microsoft JDBC Driver 1.0
      Class.forName(
        "com.microsoft.sqlserver.jdbc.SQLServerDriver");
      System.out.println("JDBC driver loaded ok.");
 
    } catch (java.lang.ClassNotFoundException e) {
      System.err.println("ClassNotFoundException: "
        +e.getMessage());
    }
  }
}

Compile and run this program:

C:\>\progra~1\java\jdk1.6.0_02\bin\javac ConnectionTest1.java

C:\>\progra~1\java\jdk1.6.0_02\bin\java -cp . ConnectionTest1

ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver

I was getting this exception, because I forgot to add the JDBC driver jar file to the classpath in the "-cp" option. Here is the correct way to run this Java program with the JDBC driver jar file:

C:\>\progra~1\java\jdk1.6.0_02\bin\java -cp .;\local\lib\sqljdbc.jar
   ConnectionTest1

JDBC driver loaded ok.

Sections in This Chapter

Installing Microsoft JDBC Driver for SQL Server

Loading Driver Class with Class.forName()

DriverManager.getConnection() and Connection URL

Specifying Port Number in Connection URL

Closing the Database Connection - con.close()

Specifying Database Name in Connection URL

Incorrect Database Name in Connection URL

Creating Connections with DataSource Class

Dr. Herong Yang, updated in 2007
Loading Driver Class with Class.forName()