Подключение к базе данных mysql с помощью Java

#java #mysql

#java #mysql

Вопрос:

У меня есть база данных mysql, работающая на localhost. Имя базы данных ‘iot’ и имя таблицы ‘iot’. Я пытаюсь подключиться, но при проверке, является ли соединение нулевым, оно. Где я ошибаюсь?

У меня есть эти переменные класса:

 private Connection connection;
private String server = "localhost:8090";
private String db = "iot";
private String username = "root";
private String password = "";
private String url = "jdbc:mysql://"   server   "/"   db;
  

В конструкторе:

 Class.forName("com.mysql.jdbc.Driver").newInstance();
this.connection = DriverManager.getConnection(url, username, password);
  

Тест:

 if(connection == null){
   System.out.println("null"); //prints unfortunately
}
  

Комментарии:

1. Я предполагаю, что раздел «Test» выполняется не в конструкторе, а в каком-то методе. Вы установили промежуточное значение this.connection равным null (конструктор и метод)? Я думаю, да…

2. Да, тест выполняется по методу. Я не устанавливал для нее значение null, не так ли?

3. Можете ли вы показать значение connection сразу после его получения — то есть в конструкторе? Если там не указано значение null, то вы устанавливаете для него значение null где-то между конструктором и методом.

4. localhost:8090 вы уверены насчет порта? Порт по умолчанию равен 3306. Кроме того, используйте последнюю версию драйвера и класс драйвера com.mysql.cj.jdbc.Driver .

5. Это странно. При проверке в конструкторе значение не равно null. У меня есть JFrame, поэтому в конструкторе многое происходит. Внизу я подключаюсь к базе данных, а затем пытаюсь запросить базу данных с помощью кнопки, вот где это значение равно null. Таким образом, в конструкторе это значение не равно null, но в классе actionlistener оно есть. @Atul да, я уверен, что это на 8090.