首页 文章

无法从Sql Server 2005获取数据(连接超时异常)

提问于
浏览
-4

java.sql.SQLException:网络错误IOException:连接超时:在net.sourceforge.jtds.jdbc.ConnectionJDBC3上连接net.sourceforge.jtds.jdbc.ConnectionJDBC2 . (ConnectionJDBC2.java:410) . (ConnectionJDBC3.java: 50)在net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:184)at java.sql.DriverManager.getConnection(DriverManager.java:582)at java.sql.DriverManager.getConnection(DriverManager.java:185) )mahesh.MyFrame.connectToServer(MyFrame.java:50)at mahesh.DataCount.main(DataCount.java:18)引起:java.net.ConnectException:连接超时:connect at java.net.PlainSocketImpl.socketConnect( java.net.PlainSocket上的java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)中java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)的java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)中的Native Method) .net.SocksSocketImpl.connect(SocksSocketImpl.java:366)at java.net.Socket.connect(Socket.java:519)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 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 . net.sourceforge.jtds.jdbc.ConnectionJDBC2中的net.sourceforge.jtds.jdbc.SharedSocket . (SharedSocket.java:257)中的sourceforge.jtds.jdbc.SharedSocket.createSocketForJDBC3(SharedSocket.java:307) . (ConnectionJDBC2.java: 311)......还有6个

任何人都可以帮我摆脱这个例外吗?

这是我的java代码

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

连接连接= DriverManager.getConnection(“jdbc:jtds:sqlserver:// mindmill:1433 / employ”,“mahesh”,“mahesh”); **

1 回答

  • 0

    jTDS FAQ所述,URL必须在表单中

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

    推断您的连接:

    • mindmill 是安装Sql Server 2005的your_computer / server的名称 .

    • 1433 是与Sql Server 2005连接的(默认)端口 .

    • employ 是数据库名称 .

    • mahesh 是您连接服务器的用户和密码 .

    从此处开始,您必须设置其他sql连接参数 . 我会发给你我的代码:

    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();
            }
        }
    }
    

    我的程序的输出:

    1 hello world
    2 goodbye!
    

    这里的课程:

    • 从SQL Server 2005开始,您必须设置实例的名称(如上例所示) .

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

    Checking TCP/IP protocol for SQL Server 2005

    还有其他任何问题,请告诉我 .

    编辑:

    最好的情况是,如果您已经尝试将此连接与您的PC作为服务器,我的意思是您的电脑必须安装Sql Server 2005,安装NetBeans并且项目已经设置并运行(作为连接数据库的概念证明) ) .

    即使您之前没有执行此步骤,在尝试连接远程服务器之前,您还应该回答一系列问题:

    • 您是否检查过您的电脑和主机之间的通信?在您的情况下,提示命令行(开始/运行...键入'cmd'并输入)并输入命令"ping mindmill",检查服务器的主机名 .

    • 您是否在PC中安装了Sql Server Management Studio并连接到服务器?你的服务器允许远程连接吗? Help 1

    • 用户是否具有足够的权限来连接数据库? Help 2

    在您之前回答完这些问题之后,让我知道更多问题 .

相关问题