2012-02-15 120 views
-4

java.sql.SQLException:网络错误IOException:连接超时:connect at net.sourceforge.jtds.jdbc.ConnectionJDBC2。(ConnectionJDBC2.java: 410)at net.sourceforge.jtds.jdbc.ConnectionJDBC3。(ConnectionJDBC3.java:50)at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:184)at java.sql.DriverManager.getConnection(DriverManager。 java:582)在mahesh.MyFrame.connectToServer(MyFrame.java:50)上的java.sql.DriverManager.getConnection(DriverManager.java:185)在mahesh.DataCount.main(DataCount.java:18)导致:java。 net.ConnectException:连接超时:在java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)处的java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)处的java.net.PlainSocketImpl.socketConnect(Native Method)处的连接)在java.net.PlainSock et.mpl.connect(PlainSocketImpl.java:182)at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native方法)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke(Method.java:597)at net.sourceforge.jtds.jdbc.SharedSocket.createSocketForJDBC3(SharedSocket.java:307)at net.sourceforge.jtds.jdbc.SharedSocket。(SharedSocket.java:257)at net.sourceforge.jtds.jdbc.ConnectionJDBC2。(ConnectionJDBC2。 java:311)... 6更多无法从Sql Server 2005获取数据(连接超时例外)

任何人都可以帮助我摆脱此异常吗?

这里是我的Java代码

**的Class.forName( “net.sourceforge.jtds.jdbc.Driver”);

连接连接=的DriverManager.getConnection( “JDBC:JTDS:SQLSERVER:// mindmill:1433 /雇用”, “马赫什”, “马赫什”); **

+0

格式化问题尽快在stakoverflow格式... – 2012-02-15 04:12:25

+1

http://stackoverflow.com/search?q=java.sql.SQLException%3A+Network+error+IOException%3A+Connection+timed+out%3A+connect + at + net.sourceforge.jtds.jdbc.ConnectionJDBC2 – 2012-02-15 04:13:23

+0

之前我有一些jtds驱动程序的麻烦,所以请您发布您的JDBC URL?也许你没有正确设置Sql Server实例,关闭了实例或为Sql Server实例禁用了TCP/IP客户端协议。 – 2012-02-15 04:23:43

回答

0

作为jTDS FAQ状态,URL必须在窗体中

jdbc:jtds:<server_type>://<server>[:<port>][/<database>][;<property>=<value>[;...]] 

从连接Infering:

  • mindmill是your_computer /服务器的名称,其中SQL Server 2005是英斯塔LLED。
  • 是(默认)端口与SQL Server连接2005
  • 聘请是数据库名称。
  • mahesh是您的用户和密码连接到服务器。

从这里开始,您必须设置其他sql连接参数。我会后你我的代码:

1 hello world 
2 goodbye! 

这里的教训:

  1. 从SQL Server 2005和上,则必须设置名称

    package edu.jtds.main; 
    
    import java.sql.*; 
    
    public class SqlServerConnTest { 
    
        Connection conn; 
    
        public void connect() { 
         try { 
          Class.forName("net.sourceforge.jtds.jdbc.Driver"); 
          String dbName = "TestDB"; 
          String user = "cajeroUpz"; 
          String password = "cajero"; 
          //the name of my SQL SERVER 2005 instance 
          String SqlServerInstance = "instance=SQL2005"; 
          String url = "jdbc:jtds:sqlserver://localhost:1433"; 
          url = url + "/" + dbName; 
          url = url + ";" + SqlServerInstance; 
          conn = DriverManager.getConnection(url, user, password); 
         } catch (Exception e) { 
          e.printStackTrace(); 
         } 
        } 
    
        public Connection getConnection() { 
         return this.conn; 
        } 
    
        public static void main(String[] args) { 
         SqlServerConnTest oSqlServerConnTest = new SqlServerConnTest(); 
         oSqlServerConnTest.connect(); 
         String sql = "SELECT * FROM TEST_TABLE"; 
         Connection conn = null; 
         Statement stat = null; 
         ResultSet rs = null; 
         try { 
          conn = oSqlServerConnTest.getConnection(); 
          stat = conn.createStatement(); 
          rs = stat.executeQuery(sql); 
          while(rs.next()) { 
           System.out.println(String.format("%d %s", 
            rs.getInt(1), rs.getString(2))); 
          } 
          rs.close(); 
          stat.close(); 
          conn.close(); 
         } catch (Exception e) { 
          e.printStackTrace(); 
         } 
        } 
    } 
    

    我的程序的输出(如上例)。

  2. 在SQL Server中,您必须检查您的TCP/IP协议是否已启用,并且通讯端口是1433(最后一个默认设置,请检查它)。您可以在SQL Server 2005配置工具中启用/禁用SQL Server配置管理。

Checking TCP/IP protocol for SQL Server 2005

任何其他问题,请告诉我。

编辑:

最好的情况是,如果你已经尝试过与您的PC作为服务器这方面,我的意思是你的电脑必须安装SQL Server 2005,安装NetBeans和项目已经设置好的运行起来(作为连接数据库的概念证明)。

即使你还没有做的步骤之前,有你应该尝试连接远程服务器之前已经回答一组问题:

  1. 你有你的电脑和主机之间的通信检查?在你的情况下,提示一个命令行(开始/运行...键入'CMD'和输入)并输入命令“ping mindmill”,检查你的服务器的主机名。
  2. 您是否在您的电脑中安装了Sql Server Management Studio并连接到您的服务器?你的服务器允许远程连接吗? Help 1
  3. 用户是否有足够的权限连接数据库? Help 2

在您回答完此问题之前,请让我知道更多问题。

+0

我应该在我的操作系统中创建任何DNS。只需要将jtds.jar放置在netbeans.my的项目库文件夹中就可以访问表一个服务器数据库,为此,我遵循以上程序。请建议我我不知道数据库和服务器数据库访问 – mahesh 2012-02-15 11:40:39

+0

您运行项目的PC必须与您的服务器连接,您可以使用** ping * *命令在控制台例如ping 192.168.1.11(从你的服务器上取代ip)。如果服务器响应正常,请尝试使用Sql Server Management Studio(适用于Windows的Express Edition [此处])连接Sql Server(http://www.microsoft.com/downloads/es-es/details.aspx?FamilyID=C243A5AE -4BD1-4E3D-94B8-5A0F62BF7796&displaylang = ES))。另一个连接问题的问题被处理[在这里](http://stackoverflow.com/questions/2118466/connection-error-in-sql-server-2005)。通过wat你的操作系统是什么? – 2012-02-15 14:10:20

+0

@mahesh对不起,我没有把你的名字在我的评论中,现在你可以检查你的收件箱:) – 2012-02-15 14:23:55