1

Тема: Допоможіть будь-ласка з JDBC

Допоможіть будь-ласка, в чому може бути проблема? вроді все є, виставлено правильно. я думаю що в мене щось з mysql server, але що.. через mysql workbench підключаюсь спокійно. Помилку видає іменно в тому рядку де я позначив стрілкою.
всі класи sql імпортовані, все мій клас бачить.
https://i.ibb.co/sPQXtsg/db.jpg

2

Re: Допоможіть будь-ласка з JDBC

Це не воно?

3

Re: Допоможіть будь-ласка з JDBC

ні, в мене все а локальному компі. Цей код працював, до переустановки вінди, це я з лінуксом возився.До речі в лінуксі цей код також працював. Попробую встановити старіші версії eclipse i mysql

4 Востаннє редагувалося colin200x (27.08.2023 09:46:50)

Re: Допоможіть будь-ласка з JDBC

після цього як перевстановив mysql (весрія 8.0.15) і з коду видалив ось це "?autoReconnect=true&useSSL=true"
залишив от так:

static final String CONN_STRING = "jdbc:mysql://localhost:3306/test";

програма видає такий виняток:

java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
підключення до бд
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)
    at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
    at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:819)
    at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:440)
    at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:239)
    at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:188)
    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:681)
    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:229)
    at library.ConnectionDB.<init>(ConnectionDB.java:19)
    at library.ConnectionDB.main(ConnectionDB.java:37)

знайшов в інеті інший код для конструктора:

public ConnectionDB(String sourge){
        try (Connection conn = DriverManager.getConnection(
                "jdbc:mysql://127.0.0.1:3306/test?autoReconnect=true&useSSL=true", "root", "12345")) {

            if (conn != null) {
                System.out.println("Connected to the database!");
            } else {
                System.out.println("Failed to make connection!");
            }

        } catch (SQLException e) {
            System.err.format("SQL State: %s\n%s", e.getSQLState(), e.getMessage());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }//end constructor

тепер пише ось таке:

SQL State: 08001
Could not create connection to database server. Attempted reconnect 3 times. Giving up.підключення до бд

і це все в екліпсі. в мене зараз дах зірве... взяв 2 маленьких проекти, для мене цікаві, тай для реального життя, а тут ось така ***ня малята.

5

Re: Допоможіть будь-ласка з JDBC

Ти використовуєш безпечне підключення за допомогою SSL.
Потрібно налаштувати автентифікацію сервера/клієнт, якщо ти хочеш використовувати SSL сертифікат. Глянь чи у MySQL Workbench з'єднання із сервером за допомогою SSL, тоді налаштування перенеси із нього. Але здається мені, що воно не налаштоване. Проглянь добре за допомогою чого Workbench здійснює підключення до MySql.
Тобто, потрібно правильно налаштувати DriverManager. Можливо це підійде?

Подякували: colin200x, leofun012

6 Востаннє редагувалося lucas-kane (27.08.2023 16:32:25)

Re: Допоможіть будь-ласка з JDBC

Яке ім'я бази даних у тебе на сервері test чи library? Можливо ти не вірно вказав найменування БД? тільки що помітив

Подякували: colin200x1

7

Re: Допоможіть будь-ласка з JDBC

я цьому світі творяться якісь чудеса, це ми всі знаємо. ось і тут, в першому прикладі це Eclipse 2023-06 i JDBC 8.1.0, не працює і видає купу помилок. Але, паралельно, скачав Eclipse 2021-12 i JDBC 8.0.33 і о чудо, все запрацювало!
Так підключення в мене не в SSL.

Дякую за відповідь, все правильно, розумні люди спочатку знайомляться з технічною документацією!

lucas-kane написав:

Ти використовуєш безпечне підключення за допомогою SSL.
Потрібно налаштувати автентифікацію сервера/клієнт, якщо ти хочеш використовувати SSL сертифікат. Глянь чи у MySQL Workbench з'єднання із сервером за допомогою SSL, тоді налаштування перенеси із нього. Але здається мені, що воно не налаштоване. Проглянь добре за допомогою чого Workbench здійснює підключення до MySql.
Тобто, потрібно правильно налаштувати DriverManager. Можливо це підійде?

Подякували: bebyk1

8

Re: Допоможіть будь-ласка з JDBC

colin200x написав:

я цьому світі творяться якісь чудеса, це ми всі знаємо. ось і тут, в першому прикладі це Eclipse 2023-06 i JDBC 8.1.0, не працює і видає купу помилок. Але, паралельно, скачав Eclipse 2021-12 i JDBC 8.0.33 і о чудо, все запрацювало!

Таке частенько буває. Нова версія вносить баґ і треба відкочуватись до попередньої, поки не виправлять той баґ.
У таких випадках певно допомагає навіть не документація (яку рідко оновляюють), а issues у репозиторії проекту, де користувачі поламаної софтини діляться костурами.

Подякували: colin200x1