解决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以上的运行环境。

 

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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM