加载JDBC驱动程序中的classNotFoundException

zoh*_*qui 0 java sql-server netbeans jdbc classnotfoundexception

我是java的新手,我正在Netbeans 6.9.1 IDE上开发Java EE应用程序.我必须将我的Java应用程序与SQL Server 2005连接.

为此我已经下载了sqljdbc.jar文件并将其放入C:\Program Files (x86)\Microsoft SQL Server\JDBC Drver\lib我的系统并在命令提示符上设置了类路径,就像这样

set classpath=.;C:\Program Files (x86)\Microsoft SQL Server\JDBC Drver\lib\sqljdbc.jar
Run Code Online (Sandbox Code Playgroud)

并通过右键单击主项目并选择其属性选择库,在IDE中设置类路径.然后在编译选项卡中添加了一个sqljdbc.jar,但是当我执行此代码时

import java.sql.*;
/**
 *
 * @author abc
 */
public class DBConnection
{
public Connection dbConnect(String db_connect_string)
        {
                try
                {

                        Class.forName(
                          "com.microsoft.jdbc.sqlserver.SQLServerDriver");

                        Connection conn =
                          DriverManager.getConnection(db_connect_string);

                        System.out.println("connected");
                        return conn;

                }
                catch (Exception e)
                {
                        System.out.println(e);
                    e.printStackTrace();
                        return null;
                }
        }
}
Run Code Online (Sandbox Code Playgroud)

它在这一行给我ClassNotFound错误 Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

Bal*_*usC 6

您需要检查随SQL Server版本附带的JDBC驱动程序文档.在旧的SQL Server 2000中,JDBC驱动程序类名称与您一样:

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Run Code Online (Sandbox Code Playgroud)

但是,自SQL Server 2005以来,Microsoft更改了JDBC驱动程序类名:

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Run Code Online (Sandbox Code Playgroud)

相应地修复它.

请注意,Netbeans和所有其他体面的Java程序都忽略CLASSPATH环境变量.忘记它,甚至不要尝试设置它,直到你理解它为什么存在以及它用于什么.