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 服务,否则无法加载新加的库!!!

此记!

 

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