我的代码是想从数据库中取出数据,再把那些数据封装成一个Uuser对象,最后把那些对象输出在屏幕上.可是我一运行程序就抛出异常.我看了半天都找不出原因,请各位高手帮我分析一下.多谢!
package hello;
import javax.swing.*;
import java.awt.*;
import java.util.*;
import java.sql.*;
import com.microsoft.jdbc.sqlserver.*;
public class JTableTest {
     //JTable table;
     ArrayList arr;
     public JTableTest()throws Exception{
          try{
          String CLASSFORNAME="com.microsoft.jdbc.sqlserver.SQLServerDriver";
          String SERVANDDB="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=CMS";
          String USER="sa";
          String PWD="";   
          Class.forName(CLASSFORNAME).newInstance();
          Connection con = DriverManager.getConnection(SERVANDDB,USER,PWD);
          Statement statement=con.createStatement();
          String isCorrect="select * from users";
          ResultSet result=statement.executeQuery(isCorrect);
           arr=new ArrayList();
          while(result.next()){//User是我自己写的一个类
                arr.add(new User(result.getString("User_id"),result.getString("User_password"),result.getString("User_name"),Integer.parseInt(result.getString("User_power"))));
               
          }
          //table=new JTable(new tableModel(arr));
          }catch(Exception e){
             throw e;
          }
          
          
     }
     public static void main(String[] args)throws Exception{
          try{
          JTableTest f=new JTableTest();
          
          
          for(int i=0;i<f.arr.size();i++){
                  System.out.println(f.arr.get(i));
          }
           }catch(Exception e){
             throw e;
          }
     }
}

解决方案 »

  1.   

    运行这个程序就抛出下面的异常,到底是什么原因导致了这个异常?Exception in thread "main" java.sql.SQLException: [Microsoft][SQLServer 2000 Dri
    ver for JDBC]Error establishing socket.
            at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source
    )
            at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
            at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
            at com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source)        at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Sou
    rce)
            at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown S
    ource)
            at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
            at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
            at java.sql.DriverManager.getConnection(DriverManager.java:512)
            at java.sql.DriverManager.getConnection(DriverManager.java:171)
            at hello.JTableTest.<init>(JTableTest.java:17)
            at hello.JTableTest.main(JTableTest.java:35)
      

  2.   

    帮你找点资料,楼主可以参考一下
    ==============================================
    jdbc配置语句为: jdbc:microsoft:sqlserver://server_name:1433 如运行程序时出现 "Error establishing socket" 错误,则应进行如下调试:
    1 检查SQL SERVER 是否允许远程访问.具体步骤:1)打开"企业管理器",打开控制台根目录>SQL Server 组>数据库
    2)在相应"数据库"上单击右键,选择"属性"
    3)选择"连接"选项卡,检查"远程服务器连接"下,RPC服务是否选择.2 使用telnet IP地址 1433,系统是否提示连接出错,如系统提示出错
    检查是否防火墙屏蔽了SQL SERVER 或 java IDE 的网络访问端口
    如果是,关闭防火墙,重新启动SQL SERVER和java IDE,进行测试,
    如果系统仍提示上述错误,尝试下列步骤3 检查SQL SERVER 端口号及是否启用了TCP/IP协议,具体步骤:1)打开"企业管理器",打开控制台根目录>SQL Server 组>数据库
    2)在相应"数据库"上单击右键,选择"属性"
    3)选择"常规"选项卡,点击"网络配置",如启用的协议中无"TCP/IP协议"将其加入
    4)选择"TCP/IP协议",点击"属性",检查其端口号是否为1433
    5)如端口号为1433将其修改为其它端口号,修改jdbc连接语句,将端口号同样改为新启用的端口号,如jdbc:microsoft:sqlserver://server_name:1400(假设新端口号为 1400
      

  3.   

    什么系统好象是jdbc 的问题,装了sql server的sp3补丁了吗/