Fork me on GitHub TOP

java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver

因为这个问题折腾了以上午,终于解决了,做下记录:

错误提示为:java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver

在出这个问题前,首先确保连接的代码不存在语法上的错误,数据库的登录名以及密码都正确,好了,下面开始:

出了两个问题:

1、我原来的连接语句为

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection conn=DriverManager.getConnection(
"jdbc:microsoft:sqlserver://localhost:1433;databasename=XX","sa","123");


改成一下即可
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn=DriverManager.getConnection(
"jdbc:sqlserver://localhost:1433;databasename=XX","sa","123");

原因是上面sqlserver2000的连接方式,而下面是sqlserver05或者08的连接方式,这个地方要注意!


2,改完后,我发现还是有问题,百思不得其解,突然发现我下载的连接驱动包里面有两个jar文件,而我使用的是sqljdbc.jar,想想,换一个会不会好,后来换成了另一个sqljdbc4.jar,完美解决,原因如下:


以下是msdn中 JDBC Driver的系统要求中的解释:我们清楚的看到 sqljdbc.jar 类库要求使用 5.0 版的 Java 运行时环境 (JRE)。连接到数据库时,在 JRE 6.0 上使用 sqljdbc.jar 会引发异常。而我的jre为6.0的,自然报异常


JAR

说明

sqljdbc.jar

sqljdbc.jar 类库提供对 JDBC 3.0 的支持。

sqljdbc.jar 类库要求使用 5.0 版的 Java 运行时环境 (JRE)。连接到数据库时,在 JRE 6.0 上使用

 sqljdbc.jar引发异常。

 注意:
JDBC 驱动程序不支持 JRE 1.4。使用 JDBC Driver 时必须将 JRE 1.4 升级至 JRE 5.0 或 JRE 6.0。
在某些情况下,您可能需要重新编译应用程序,因为它可能与 JDK 5.0 或更高版本不兼容。
有关详细信息,请参阅 Sun Microsystems 网站上的文档。

sqljdbc4.jar

sqljdbc4.jar 类库提供对 JDBC 4.0 的支持。它不仅包括 sqljdbc.jar 的所有功能,

还包括新增的 JDBC 4.0 方法。

sqljdbc4.jar 类库要求使用 6.0 版的 Java 运行时环境 (JRE)。在 JRE 1.4 或 5.0 上

使用 sqljdbc4.jar 会引发异常。

注意:
如果应用程序必须在 JRE 6.0 上运行,即使该应用程序不使用 JDBC 4.0 功能
,也应使用 sqljdbc4.jar

posted @ 2013-07-22 13:29  rookiebob  阅读(34375)  评论(0编辑  收藏  举报