解決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