在代碼中手動連接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以上的運行環境。
"你以為我不知道,但是其實我已經知道了。"