JDBC ошибка

95
1
2
Обращаюсь к знатокам!
Пытаюсь подключится в базе данных с помощью JDBC. Подключил драйвер mysql какими только можно способами:
Добавил в dependecies:
compile group: 'mysql', name: 'mysql-connector-java', version: '5.1.4'
подключил либу мануально через настройки проекта и даже добавил ее в classpath... все равно ничего не происходит и в итоге ловлю следующую ошибку

1635022956073.png

При том, что класс этот существует

Код подключения:
String url = "jdbc:mysql://"+DatabaseConfig.getHost()+":3306/"+DatabaseConfig.getDBName();
        String username = DatabaseConfig.getUsername();
        String password = DatabaseConfig.getPassword();
        System.out.println("CONNECTING TO DATABASE "+DatabaseConfig.getDBName());
        try {
            Class.forName("com.mysql.jdbc.Driver");
            System.out.println("Driver was loaded");
        } catch (ClassNotFoundException e) {
            System.out.println("Class not Found!!!");
        }
        try {
            System.out.println("CONNECTED TO DATABASE "+DatabaseConfig.getDBName());
            //Class.forName("com.mysql.cj.jdbc.Driver");
            Connection connection = DriverManager.getConnection(url, username, password);

        } catch (SQLException e) {
            e.printStackTrace();
        }
 
95
1
2
Повторил те же действия, но поставил более новую версию драйвера. Теперь ошибка другая
1635027972649.png
 
174
14
25
SQLHelper:
public class SQLHelper {
    //private String url = "jdbc:sqlite:" + new File("databases/test.db"); //local
    private String url = "jdbc:mysql://"+host+":3306/"+dbname;

    public SQLHelper() throws Exception {  
        Class.forName("org.sqlite.JDBC");
    }

    private Connection getConnetion() throws SQLException {
        return DriverManager.getConnection(url, login, password);
    }

    public void getData() {
        Connection connection = getConnetion();
        Statement statement = connection.createStatement();
        //code mechanic with statement...
        statement.close();
        connection.close();
    }
}
 
Последнее редактирование:
153
21
41
SQLHelper:
Код:
public class SQLHelper {
    //private String url = "jdbc:sqlite:" + new File("databases/test.db"); //local
    private String url = "jdbc:mysql://"+host+":3306/"+dbname;

    public SQLHelper() throws Exception {  
        Class.forName("org.sqlite.JDBC");
    }

    private Connection getConnetion() throws SQLException {
        return DriverManager.getConnection(url, login, password);
    }

    public void getData() {
        Connection connection = getConnetion();
        Statement statement = connection.createStatement();
        //code mechanic with statement...
        statement.close();
        connection.close();
    }
}
Любая помощь это конечно хорошо, но у тебя код 1 в 1, дак еще и для sqlite, проблемы это не решит. Мне больше интересно почему ТС видит NoClassDefFoundError, и решается обновить либу, может стоит продебажить и точно понять подгружается ли она?
 
174
14
25
У него кривой код, который написан хз как и через что....
Очевидно, что модули криво подключены...

Sqlite: org.xerial:sqlite-jdbc:3.7.2
Mysql: mysql:mysql-connector-java:5.1.44
 
Последнее редактирование:
95
1
2
@tox1cozZ , я вчера еще обновил. Теперь просто не может найти подходящий драйвер, даже если подключаю нужный.
@PeTcHeNyShOhKa , ты говоришь, что у меня кривой код, но скидываешь абсолютно такое же решение только более красиво оформлено. Плюс не совсем уверен, что драйвер sqllite подойдет под mysql, но обязательно попробую :oops:
@will0376
1635120532857.png
1635120567959.png
Очевидно, что я просто не правильно подключаю либу, но я уже просто не знаю куда мне ее еще запихнуть. Через gradle.build такое чувство, будто бы либа вообще не подключается.
 
Последнее редактирование:
153
21
41
Очевидно, что я просто не правильно подключаю либу, но я уже просто не знаю куда мне ее еще запихнуть. Через gradle.build такое чувство, будто бы либа вообще не подключается.
Если Class.forName не выдает исключение, то либа загружена, легче грузануть старый 5.1.4 и понять почему класс не находит.
 
95
1
2
и на кой хрен ты его в buildscript закидываешь?
Не знаю зачем я это сделал, в попытках найти информацию, увидел как на форуме кто-то так же сделал. Но даже убрав это, проблема все равно не пофиксится)
Если Class.forName не выдает исключение, то либа загружена, легче грузануть старый 5.1.4 и понять почему класс не находит.
Я попробую задебажить старую версию, если с новой все так же глухо будет, но мне пока вообще не понятно в каком направлении смотреть. что бы понять почему так происходит. Ведь как я и сказал, в еклипсе я спокойно могу обратится к классу, который в рантайме "отсутствует" )
 
Сверху