您的位置:首页 > 数据库

JDBC 连接SQLServer 错误总结

2011-03-18 21:25 357 查看
这是本人遇到的清苦样,本来没打算写下来的,可到目前位置让我纠结了整整两天的问题解决 这真的是让我有点喜出望外,

这也不是什么大问题,也就是我这种新手才会遇见的,因为刚开始接触到javaEE 本来原来学javaSE的时候也用过JDBC连接数据库,可当时

也没用SQLServer ,也就是用了一个Access数据库,所以现在在连接SQLServer的时候,以至于出现了这个小小的问题就让我纠结了这么久,于是、我觉得把我出现问题到找问题,再到找出问题得到解决的过程写下来,以便将来的新手们能有一点点小小的体会

刚开始,我是在做一个简单的用户登录系统,用javaEE+Eclipse+MyEclipse 、做好Login 、LoginCL、Welcome JSP文件后,(代码依依写完),本来还感觉蛮有成就感的,于是带有一点喜庆的就开始运行,但结果却让我大失所望,login的页面是出来了,可当我登录用户名以及密码后,却让我不知所措的跳到了错误的页面,无论我怎么试,一遍,两遍、甚至更多,结果还是那样无情,于是开始了我找错误的征途。

开始的我却恍惚的连异常都没仔细的看 本来作为一个快接触java一年的人来说,遇到类似的问题时,首先得要把异常弄清楚才可以去找错误,而当时的我却没有这么做,而是去找jsp代码以及脚本和HTML代码的错误,于是、百失败不灵、这时候,突然心灰意冷、从来没对java失去过任何信心的我 感觉有点感觉失望,茫然不知所措了,代码始终还是在哪里,无论怎么改,怎么换,甚至是一个标点,一个分号,此刻在我眼里都像一颗颗大石头,我紧抓不放,任然错误终究是错误、冷静,这个时候必须的冷静,回想回想。

如果要找错误的话,估计首先要从连接数据库那段儿代码找起,于是我写了一个测试类,目的是测试出我的jsp代码到底有没有连接到数据库,以便去操作到数据库中的数据,测试类如下:

package com.university;
import java.sql.*;
public class TestJDBC {
/**
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成方法存根
String url = "jdbc:sqlserver://localhost:1433;DatabaseName=MYDB";
String userName = "sa";
String password = "630923";
String sql = null;
Connection conn = null;
Statement stmt = null;
try {
System.out.println("加载驱动之前");
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
System.out.println("驱动加载成功");
} catch (ClassNotFoundException e) {
System.err.print("驱动加载失败");
}
try {
System.out.println("连接数据库之前");
conn = DriverManager.getConnection(url, userName, password);
System.out.println("数据库连接成功");
} catch (SQLException e) {
System.out.println("数据库连接失败");
e.printStackTrace();
}
}
}


结果却让我又吃一大惊:出现了一下异常:

数据库连接失败
com.microsoft.sqlserver.jdbc.SQLServerException: 到主机  的 TCP/IP 连接失败。 java.net.ConnectException: Connection refused: connect
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.loginWithoutFailover(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at com.university.TestJDBC.main(TestJDBC.java:27)


原来如此啊,根本就没连接到数据库,于是又开始了查找没连接到数据库的错误。“如果没有引进sqljdbc.jar的话 异常应该还会提示:加载驱动失败,而实际确实夹在驱动成功,那肯定不是这个包的问题,要想找出错误的根源,我想还得应该从这个语句入口:

String url = "jdbc:sqlserver://localhost:1433;DatabaseName=MYDB";

conn = DriverManager.getConnection(url, userName, password); 而这个语句我是在是怎么也看不出来它有错啊,老天!问问别人吧,或许是我这时候神经恍惚了。于是我问了问我一个朋友(也是从事编程的朋友) 没错啊,my god!难道是世界末日来临! 不行、一定要弄清楚到底那里出错额,,一定能够是数据库的问题,一定,只剩下这个了,于是我又开始检查数据库 在我所建立的数据库里面用数据库查询语句查看了端口号,没错呀 1433 到底是那里,我要崩溃了!于是我开始通过我们强大的谷歌,百度....于是过了一天....”

通过了解,原来是数据库默认的那个TCP/IP协议默认是禁用了的,哎,不愧是新手,这个问题不知道也是正常的,可为什么就折腾了我这么久呢,还是那句话,新手就是新手,这才是痛苦的开始,了解到错误的根源,是没有开启数据库的TCP/IP协议,于是我按照了解的准备去打开SQL Server Configuration Manager 可又一幕让我无法窒息,对于一个初级程序员来说:“

无法连接到WMI提供程序。你没有权限或者该服务器无法访问。请注意你只能使用SQL SERVER 配置管理器来管理sql server 2005服务器。
找不到指定的模块。[0x8007007e] )” 该死的SQLServer,这究竟是怎么了,怎么会打不开,于是我又通过网络,继续查看到底为什么打不开这个东西(毕竟、网络也是我们有力的老师)哇!好多哦 就是关于这个为什么打不开SQL Server Configuration Manager的问题,要想将数据库里面的TCP/IP协议开启,就必须要打开它,于是,我看,我看,我看看看,依依的按照前辈们说的去试。

可是问题还是没解决,我打开过我的电脑,在本地组,用户里面的Admain添加NETWORKSERVICE 、也按照网上的前辈所说,在dos里面

输入一大串的命令,可还是不行啊,网上的先辈们说的我都试了,问题还是没得到解决。实在是郁闷的不行了,带着这种万分的纠结,又度过了一天,可惜我的时间,就这么一点点的浪费掉了。MY GOD!

始终找不到错误,我决定重装这个现在让我超级郁闷的SQLServer了,决定后,我又开始了噼噼啪啪的忙碌,光盘呢,在哪儿,重装,重装!

重装这总该可以了吧 您折磨我也该够了吧 老天爷!终于装完啦,嘿嘿,于是我好奇却又很害怕的打开SQL Server Configuration Manager,狂晕!还是那串让我窒息的异常:“无法连接到WMI提供程序。你没有权限或者该服务器无法访问。请注意你只能使用SQL SERVER 配置管理器来管理sql server 2005服务器。 找不到指定的模块。[0x8007007e] )”

于是我又开始质询前辈,终于找到问题所在,我在安装SQLServer的时候没有安装IIS 我记不清楚这个是为什么了,反正当我装上IIS 在将数据库注册表 等之类全部卸载完之后(卸载了差不多一个小时,当然也许是我的电脑垃圾 哈哈 )在重新装过之后,一切终于雨过天晴!!

我想:遇到问题我们至少不应该慌,应该从错误的根源找起,就像我,如果我一开始就仔细的查看异常,也就不会在代码上花掉了那么多时间了,我都怀疑以前我看异常是为了什么,到关键时候居然没有看,无语了对自己,通过这次的失误,也许真的又让我向前走了一小步,至少它让我知道,遇到事情, 不要慌,从本源找起,如果自己实在是不懂(人总是从新手做起),就得虚心的请问别人,或是自己动手问问网页,问问谷歌,问问百度,也许,因为它们更是一个不错的老师,里面汇集了很多先辈师兄们的经验。

哈哈 就分享到这里了,废话是有点多了哈,以前都没写过这些,希望看的不要见笑才好!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐