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。 |