Связь между Java и MySql - PullRequest
       2

Связь между Java и MySql

0 голосов
/ 17 ноября 2018

Я пытаюсь установить соединение между Java и моей базой данных. Я использую Eclipse и xampp. Я почти уверен, что у меня есть хороший конфиг Eclipse и xampp, но, возможно, я что-то упустил. Я много искал в интернете, но не нашел решения.

Моя ошибка:

SQLException: не удалось создать соединение с сервером базы данных. Попытка восстановить соединение 3 раза. Сдаваться. SQLState: 08001 VendorError: 0

  1. Xampp - Xampp config

  2. Затмение - У меня есть файлы JAR в папке рабочей области. Eclipse config

  3. phpmyadmin - Мне не нужен пароль для входа в localhost / phpmyadmin, и у меня есть только одна запись в БД.

  4. Код

    import java.sql.Statement;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    public class JDBC2 {
    static String daneZBazy;
    static String polaczenieURL = "jdbc:mysql://localhost:3306/heroes.db? 
    autoReconnect=true&useSSL=false";
    static String login = "root";
    static String password = "root";
    public static void main(String[] args) {
    
    // Question to DB
    String query = "Select * FROM heroestab";
    
    Connection conn = null;
    
    try {
    
        // Connection parameters
        conn = DriverManager.getConnection(polaczenieURL, login, password);
    
        //  MySQL Driver
        Class.forName("com.mysql.jdbc.Driver");
    
        // Start question to DB
        Statement stmt = conn.createStatement();
        ResultSet rs = stmt.executeQuery(query);
    
        while (rs.next()) {
            wyswietlDaneZBazy(rs);
        }
    
        conn.close();
    }
    //throws exception
    catch (ClassNotFoundException wyjatek) {
        System.out.println("Driver error");
    }
    
    catch (SQLException wyjatek) {
        wyjatek.printStackTrace();
        System.out.println("Login problem. Check, username, password, DB name, IP adress");
        System.out.println("SQLException: " + wyjatek.getMessage());
        System.out.println("SQLState: " + wyjatek.getSQLState());
        System.out.println("VendorError: " + wyjatek.getErrorCode());
    
       }
    
       }
    
        static void wyswietlDaneZBazy(ResultSet rs) {
        try {
        daneZBazy = rs.getString(1);
        System.out.println("\n" + daneZBazy + " ");
        daneZBazy = rs.getString(2);
        System.out.println(daneZBazy + " ");
        daneZBazy = rs.getString(3);
        System.out.println(daneZBazy);
        } catch (SQLException e) {
        e.printStackTrace();
       }
      }
    }
    

Ответы [ 2 ]

0 голосов
/ 18 ноября 2018

Я вижу, что мои базы данных используют cmd:

  1. C: \ xampp \ mysql \ bin> mysql -u root -p
  2. Введите
  3. показывать базы данных;и тогда я могу видеть все базы данных, которые у меня есть на localhost.Когда я выбираю героев и могу выбирать * из героев;

Изображение: База данных cmd

0 голосов
/ 17 ноября 2018

Убедитесь, что имя пользователя и пароль указаны правильно .

Мне нужна полная трассировка стека:

 wyjatek.printStackTrace();

Если имя пользователя (root) иневерный пароль, вы увидите следующую строку в вашей трассировке стека:

   Access denied for user 'root'@'localhost' (using password: YES)

Если я правильно помню, с конфигурацией xampp по умолчанию вы можете попробовать это:

  • user: root
  • пароль: [пусто]
static String login = "root";
static String password = "";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...