解决java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver问题

在代码中手动连接SQL Server数据库的时候报错【java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver】。

知道大致原因是因为缺少了驱动包,然后因为是在Maven的环境中,通过Maven引入sqljdbc4的依赖之后好像不行,只能另外想办法。

另外的办法是将sqljdbc4.jar文件复制到项目里的WEB-INF下的lib目录下面,试了一下就可以正常连接上SQL Server数据库了。

然后另外还发现2008的版本驱动和2000的有点不同,之前的驱动类名都是【com.microsoft.jdbc.sqlserver.SQLServerDriver】,可是2008以上版本却是【com.microsoft.sqlserver.jdbc.SQLServerDriver】,注意到了吗,其中的【sqlserver】和【jdbc】包名互换了,然后url的前缀也从【jdbc:microsoft:sqlserver://】变成了【jdbc:sqlserver://】,微软真的是逻辑鬼才。

如果最终的应用是要放在Tomcat下或什么容器下跑,需要在代码中添加加载驱动包类的代码,否则也会报上面的错误。

try {
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
} catch (InstantiationException | IllegalAccessException | ClassNotFoundException e1) {
    e1.printStackTrace();
}

另外sqljdbc4.jar需要jre6以上的运行环境。

"你以为我不知道,但是其实我已经知道了。"

原文地址:https://www.cnblogs.com/yanggb/p/11605947.html