resin+JSP用JDBC連接sqlserver2008的正確方法(解決:ClassNotFoundException , No suitable driver found for jdbc)

連接使用方法引用自:http://hnwsha.blog.sohu.com/113045790.html (連接字串不適合 sqlserver2008 報錯)

修正連接字串方法引用自:https://blog.csdn.net/ikmb/article/details/5694300

之前安裝了 IIS7.5 + resin 支持 jsp 服務器,今天用試用 JSP 連接 MS sqlserver ,參照: http://hnwsha.blog.sohu.com/113045790.html  的代碼,寫好了測試文件,配置好了數據庫加載頁面發現報錯:  java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver

從: ClassNotFound 字面意思看,是沒找到類,推測是 resin 沒有 JAVA 支持 MS sqlserver 的庫,找到資料:https://blog.csdn.net/zhengjia0826/article/details/50377802/ 一看,果然如此,需要添加 sqljdbc4.jar 庫。

於是下載了 sqljdbc4.jar ,放到 resin 的 lib 目錄內,刷新頁面,錯誤提示變成了: 

 java.sql.SQLException: No suitable driver found for jdbc:microsoft:sqlserver://...... 

從錯誤提示看,MSSQL 支持庫應該是安裝正確了,但是左看右看資料對比各種連接數據庫代碼都沒發現問題出在哪裏,無意中看到: https://blog.csdn.net/ikmb/article/details/5694300 ,發現文中的連接字串略有不同,對比修改了一下,刷新頁面居然運行正確了!!!

那麼可以確定 resin + JSP 用 JDBC 連接 MSsqlserver2008 的正確連接字串應該是:

"jdbc:sqlserver://10.1.1.3:1433;databaseName=SQLtest;user=sa;password=123;";

之前包括 http://hnwsha.blog.sohu.com/113045790.html  在內,無數例子中的連接字串均爲:

"jdbc:microsoft:sqlserver://10.1.1.3:1433;databaseName=SQLtest;user=sa;password=123;";

錯誤的中間多了一個 microsoft: ,同時測試中有資料說,MSSQL 2000 和 2005+ 的 類引用語句 Class.forName() 中的寫法不同,因爲我沒有 MSSQL2000了,所以記錄下:

​​​​  Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");//MSSQL 2005+
//Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");  //MSSQL2000

同時懷疑  "jdbc:microsoft:sqlserver://10.1.1.3:1433;databaseName=SQLtest;user=sa;password=123;"; 也是運用於 MSSQL2000的!

注意:安裝了  sqljdbc4.jar 庫後,必須重啓一次 resin 服務,否則無法加載新加的庫!!!

此記!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章