2013-11-28 2 views
0

Я пытаюсь реализовать подключение базы данных на основе JDBC в своей программе Java к любым системам управления базами данных. Сначала я попытался с помощью Microsoft SQL Server Management Studio, мой код выглядит следующим образом:Невозможно связать программу Java с базой данных SQL

public class ConnectionCreate { 
    public connectionCreate(){ 
     try { 
      //SQL Server Manager Settings 
      Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
      Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=test","test","test"); 
      System.out.println("Connection Established"); 

     }catch(Exception e){ 
      System.out.println(e); 
     } 
    } 
} 

Моя тестовая база данных называется тест, размещенный на порту 1433 в SQL Server Management Studio и сказал, что это работает. Я мог бы изменить его с помощью студии графического интерфейса, добавление таблиц и т.д., но всякий раз, когда я назвал свой Java кода оно не будет говорить:

Exception: com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host localhost, port 1433 has failed. Error: "Invalid argument: connect. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall. 

Я проверил все, что я могу думать, чтобы файл банка, безусловно, был найден для JDBC поскольку нет проблемы с вызовом Class.forName. Я был в конфигурации сети SQL Server> Протоколы, и я обеспечил включение всех типов подключений, включая TCP/IP. Я убедился, что порт по умолчанию для использования - 1433. Я даже полностью отключил свой брандмауэр, просто отключившись, и все же он отказывается работать.

Из отчаяния Я также попробовал другой инструмент управления базами данных. XAMPP с использованием PhpmyAdmin и mysql. Я еще раз приложил необходимые .jar правильно, застрахованный он прекрасно работает локально в веб-браузере и использовать следующий код в моем тестовом сценарии Java:

public class ConnectionCreate { 
    public connectionCreate(){ 
     try { 
      //MySQL Settings 
      Class.forName("com.mysql.jdbc.Driver"); 
      Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", ""); 
      System.out.println("Connection Established"); 

     }catch(Exception e){ 
      System.out.println(e); 
     } 
    } 
} 

Это также дает мне ошибку, когда я бегу мой Java тестовой программы. В нем говорится:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure 
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. 

Я в полной растерянности, что делать здесь, я не могу установить любое рабочее подключение к базе данных в моей программе Java, и я не уверен, что я еще может понадобиться изменить мою систему или мой код, чтобы он работал. Любая помощь будет замечательной!

+0

Можете ли вы повторить это с очень простой программой, которая просто соединяет? Просто чтобы подтвердить, что это не проблема в какой-то другой части программы? Там очень простая программа для JDBC, с которой вы можете протестировать: http://support.microsoft.com/kb/313100 –

ответ

0

Я вижу, что SQL Server на том же компьютере.

Я думаю, вам нужно проверить диспетчер конфигурации SQL Server, если вы включили доступ через TCP/IP, так как есть собственный (не TCP/IP) протокол, доступный для SSMS.

См TechNet: http://technet.microsoft.com/en-us/library/ms187892(v=sql.105).aspx

+0

Я уже учился в этом учебнике, и я убедился в том, что в моей базе данных включен TCP/IP, чтобы прослушивать по умолчанию 1433, и моя Java пытается использовать эти настройки. Однако он все еще не работает, и я получаю ту же ошибку, что и до сообщения «Недопустимый аргумент: connect» – user1405741

Смежные вопросы