事情的情况是这样的,我在看《JAVA从入门到精通》(清华大学出版社)这本书,在看到了第20章《数据库操作》的时候,不是有一个JDBC的技术嘛,也就是通过一些JAVA的代码去连接到数据库中去,然后可以执行一些查询修改更新的操作嘛。然后我就按照书本的代码去敲啊。。不过问题来了,下面我一一详述。首先下面是我的实验代码:
package com.Hong;
import java.sql.*;public class Gradation {
static Connection con;
static Statement sql;
static ResultSet res;
public Connection getConnection(){
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
System.out.println("数据库加载驱动成功,yeah!");
}catch(ClassNotFoundException e){
e.printStackTrace();
}
try{
con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;"+
  "DatabaseName=db_hong","","");
System.out.println("数据库连接成功");
}catch(SQLException e){
e.printStackTrace();
}
return con;
}
public static void main(String[] args){
Gradation c = new Gradation();
con = c.getConnection();
try{
sql = con.createStatement();
res = sql.executeQuery("select * from TABLE2");
while(res.next()){
String id = res.getString("id");
String name = res.getString("name");
String sex = res.getString("sex");
String brithday = res.getString("brithday");
System.out.println("编号:"+ id);
System.out.println("姓名:"+ name);
System.out.println("性别:"+ sex);
System.out.println("生日:"+ brithday);
}
}catch(Exception e){
e.printStackTrace();
}
}}
这段代码的大概也就是我想从数据库里面提取一些数据并显示出来嘛,但是这段代码就运行不了,出现下面的错误提示:
数据库加载驱动成功,yeah!
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.Hong.Gradation.getConnection(Gradation.java:16)
at com.Hong.Gradation.main(Gradation.java:26)
java.lang.NullPointerException
at com.Hong.Gradation.main(Gradation.java:28)
就是数据库加载驱动成功,但是连接不了数据库(也就是说你连接不了就肯定取不了里面的数据了啊)。
(PS:上面代码里面的数据表(名)及数据内容我已经在MSSQL2000里面创建了,在运行上面代码的时候MSSQL2000服务也启动的)
但是总是提示到主机的TCP/IP连接失败,然后我在cmd下telnet localhost 1433,也提示连接失败,也就是说我的1433端口(服务)没有打开吗???但是我已经通过“打开网络连接属性--高级--设置--例外--添加端口(输入端口号)”这样的操作添加了一个1433端口进去了,但是为什么还是不行呢(电脑我已经重启过了)。我现在只想能让上面的代码能运行并且能在控制台上显示我的查询之后的结果并显示出来!
但是我弄了很多天都弄不出个所以然来,希望大家能给点中肯的意见••谢谢!

解决方案 »

  1.   

    到服务里去看一下sqlserver服务启动了没有
    防火墙是用来防止本机以外的机器访问的
      

  2.   

    and be sure sql server 2000 sp4  installed
      

  3.   


    MSSQL服务器端工具的端口默认是1433了,不用改
      

  4.   


    不是sp3a补丁吗?我上网查到的是要打这个补丁啊。。
      

  5.   


    我去了服务那里查看了,已经启动了。。
    MSSQLSERVER    已启动 自动 本地系统
    已经启动了··
      

  6.   

    telnet 不成功,是服务的问题,最好还是打SP4,我遇到的是没有打SP的sqlserver连接不上