Невозможно получить данные из Sql Server 2005 (исключение времени ожидания соединения) - PullRequest
0 голосов
/ 15 февраля 2012

java.sql.SQLException: Сетевая ошибка IOException: Тайм-аут соединения: соединение в net.sourceforge.jtds.jdbc.ConnectionJDBC2. (ConnectionJDBC2.java:410) в net.sourceforge.jtds.jdbc.ConnectionJDBC3.(ConnectionJDBC3.java:50) на net.sourceforge.jtds.jdbc.Driver.connect (Driver.java:184) на java.sql.DriverManager.getConnection (DriverManager.java:582) на java.sql.DriverManager.getConnection (DriverManager.java:185) по адресу mahesh.MyFrame.connectToServer (MyFrame.java:50) по адресу mahesh.DataCount.main (DataCount.java:18) Причина: java.net.ConnectException: истекло время ожидания соединения: подключиться на java.net.PlainSocketImpl.socketConnect (собственный метод) на java.net.PlainSocketImpl.doConnect (PlainSocketImpl.java:333) на java.net.PlainSocketImpl.connectToAddress (PlainSocketImpl.java:195) в java.netl.PlainSignOpp.: 182) на java.net.SocksSocketImpl.connect (SocksSocketImpl.java:366) на java.net.Socket.connect (Socket.java:519) на sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) в sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39) в sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25) в java.inkeet ().в net.sourceforge.jtds.jdbc.SharedSocket.createSocketForJDBC3 (SharedSocket.java:307) в net.sourceforge.jtds.jdbc.SharedSocket. (SharedSocket.java:257) в net.sourceforge.jtds.jDBC2..java: 311) ... еще 6

Может ли кто-нибудь помочь мне избавиться от этого исключения?

вот мой код java

** Класс.forName ("net.sourceforge.jtds.jdbc.Driver");

Соединение соединения = DriverManager.getConnection ("jdbc: jtds: sqlserver: // mindmill: 1433 / employee", "mahesh", ""Махеш "); **

1 Ответ

0 голосов
/ 15 февраля 2012

Как указано в jTDS FAQ , URL должен быть в форме

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

Исходя из вашей связи:

  • mindmill - это имя вашего_компьютера / сервера, на котором установлен Sql Server 2005.
  • 1433 - порт (по умолчанию) для соединения с Sql Server 2005.
  • используйте - имя базы данных.
  • 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!

Уроки здесь:

  1. Начиная с SQL Server 2005 и выше, вы должны задать имя экземпляра (как в примере выше).
  2. В SQL Server вы должны убедиться, что ваш протокол TCP / IP включен, а порт связи - 1433 (последний установлен по умолчанию, просто отметьте его). Вы можете включить / отключить, используя Управление конфигурацией SQL Server в Инструментах конфигурации SQL Server 2005.

Checking TCP/IP protocol for SQL Server 2005

Любые другие проблемы, просто скажите мне.

EDIT:

В лучшем случае, если вы уже пробовали это соединение с вашим компьютером в качестве Сервера, я имею в виду, что на вашем компьютере должен быть установлен Sql Server 2005, установлен NetBeans и проект уже настроен и запущен (в качестве доказательства концепции подключите базу данных).

Даже если вы еще не сделали этот шаг, есть ряд вопросов, на которые вы должны были ответить, прежде чем пытаться подключиться к удаленному серверу:

  1. Вы проверили связь между вашим компьютером и хостом? В вашем случае запросите командную строку (Пуск / Выполнить ... введите 'cmd' и Enter) и введите команду "ping mindmill", проверьте имя хоста вашего сервера.
  2. Вы установили Sql Server Management Studio на свой компьютер и подключились к серверу? Ваш сервер разрешает удаленные подключения? Справка 1
  3. Достаточно ли у пользователя прав для подключения к базе данных? Справка 2

Дайте мне знать больше вопросов после того, как вы уже ответили на эти вопросы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...