2016-09-14 2 views
0

У меня есть база данных для практики на phpMyAdmin. Я использую XAMPP. Я нахожусь на очень ранних стадиях, рассказывая о связи с базой данных. Я следую учебнику, и я думаю, что понимаю концепцию, и все круто. Но я наступил на проблему, которая, несмотря на то, что есть ответы в Интернете, я не могу ее решить. Вот мой код:Java-соединение с базой mySQL

import java.sql.*; 

public class DBConnect { 

    private Connection connection; 
    private Statement statement; 
    private ResultSet result; 

    public DBConnect(){ 
     try { 
      Class.forName("com.mysql.jdbc.Driver"); 
      connection = DriverManager.getConnection("jdbc:mysql://localhost:1234/practicedb"); //code stucks here and after some minutes it is throwing an exception 
      System.out.println("Connected");//this is never executed. 
      statement = connection.createStatement(); 

     } catch (Exception ex) { 
      System.out.print("Error in Constractor: "+ex); 
     } 
    } 

    public void getData() { 

     try { 

      String query = "select * from cars"; 

      result = statement.executeQuery(query); 
      while (result.next()) { 
       String name = result.getString("carName"); 
       String id = result.getString("carID"); 
       String modelNum = result.getString("modelNumber"); 
       System.out.println("Car name: " + name + ", " + "Car ID: " + id + ", " + "Car model number: " + modelNum); 
      } 

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

    } 
} 

В главном классе я создать экземпляр класса, а затем вызвать getData().

Кодовые заклинивание в этой строке:

connection = DriverManager.getConnection("jdbc:mysql://localhost:1234/practicedb"); 

И он бросает, что:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure 

Последний пакет успешно отправлен на сервер 0 миллисекунд назад. Водитель не получил каких-либо пакетов от server.java.lang.NullPointerException

Этот подобный вопрос был дан ответ здесь: answer

Но предложения беден. Я попытался промыть dns. Я проверил URL-адрес, и это тот, который я подключаю к базе данных на phpmyadmin. Я изменил localhost на мой IP-адрес. но все эти просто не работают.

Я бы очень признателен за помощь. Является первым шагом на пути к управлению этими знаниями, и на самом деле я не могу действовать в данный момент. Спасибо :)

  • Я заметил, что если я сменил localhost: 1234 на случайный, такой как localhost: 5432, он мгновенно бросает ошибку. Но когда я его на 1234 (который я выбрал через конфигурацию xampp), программа запускается около 5 минут, прежде чем она завершится с исключением
+5

Почему вы (попробуйте) подключить порт 1234? MySQL прослушивает 3306 – tkausl

+0

Проверьте запуск базы данных и запустите следующее: netstat -ano | findstr 1234 (если на окнах), если на linux netstat -anp | grep 1234. Вы видите что-то вроде этого: «TCP 0.0.0.0:3389 0.0.0.0:0 LISTENING 1316» (последнее число - это PID, проверьте, что это то же самое, что и сервер mysql) –

+0

Где имя пользователя и пароль в строке подключения ? Обычно я использую smth следующим образом: 'String url =" jdbc: mysql: //127.8.92.130: 3306/"; Строка dbName = "test"; String driver = "com.mysql.jdbc.Driver"; Строка userName = "admin"; String password = "pass"; Строка sslState = "? UseSSL = false"; con = DriverManager.getConnection (url + dbName + sslState, имя_пользователя, пароль); ' –

ответ

-3

Обычно MySQL слушает порт по умолчанию 3306. Если ваша база данных называется practicedb тогда ваш код должен выглядеть следующим образом:

private Connection connection;  

try { 
    connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/practicedb"); 
    System.out.println("Connected"); 
} catch (Exception ex) { 
    System.out.print("Error creating connection: "+ex); 
} 
+0

Я изменил порт по умолчанию на 1234, потому что по умолчанию был конфликт –

+0

Добро пожаловать в StackOverflow! Я не уверен, почему вы так сильно опустились; ваш ответ мог бы включать в себя немного больше объяснений, но определенно был и моей первой мыслью (хотя в редакции плаката похоже, что это не так). –

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