加载JDBC驱动程序中的classNotFoundException

时间:2011-12-10 18:19:47

标签: 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

并通过右键单击主项目并选择其属性选择库,在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;
                }
        }
}

它在此行Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

上给出了ClassNotFound错误

3 个答案:

答案 0 :(得分:6)

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

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

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

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

相应修复。

请注意,Netbeans和所有其他不错的Java程序都会{strong}忽略忽略。忘记它,甚至不要尝试设置它,直到你理解为什么它存在以及它用于什么。

答案 1 :(得分:0)

你可以尝试:

set classpath=.;"C:\Program Files (x86)\Microsoft SQL Server\JDBC Drver\lib\sqljdbc.jar"

如果没有,请尝试使用短名称替换名称中带有空格的文件夹。要获得短名称,请尝试

dir /-n

答案 2 :(得分:0)

如果您使用Maven,可以尝试在pom.xml中添加以下内容:

<dependency> 
<groupId>com.microsoft.sqlserver</groupId> 
<artifactId>sqljdbc4</artifactId> 
<version>4.0</version> 
</dependency>