Я студент, и одним из наших заданий является создание веб-проекта на Java на локальном веб-сервере GlassFish 5.База данных, используемая для этого проекта - OracleDB, работающая локально в контейнере Docker.
Я почти закончил свой проект, но некоторые страницы продолжают падать (NullPointerException).Я должен получить записи базы данных и сохранить их в ArrayList.Но иногда SQLConnection ничего не возвращает (но записи действительно существуют), и мой код пытается предварительно выполнить действия для этого пустого ArrayList.
Теперь, как я уже говорил, соединение кажется нестабильным, потому что в некоторых случаяхслучайные моменты, когда база данных отвечает соответствующими записями.
Это действительно расстраивает, и я не могу продолжать работать над этим проектом без стабильного соединения с базой данных.Поэтому я был бы признателен людям, у которых есть опыт: -)
Спасибо, что уделили время.
Код для выполнения запроса:
protected ResultSet getRecords(String query) {
try {
Connection connection = DriverManager.getConnection(url, login, password);
Statement statement = connection.createStatement();
return (ResultSet) statement.executeQuery(query);
} catch (SQLException e) {
e.getStackTrace();
}
return null;
}
Код сзапрос:
List<Uitlening> uitleningen = new ArrayList<Uitlening>();
try {
ResultSet resultSet = getRecords("SELECT * FROM uitlening");
while(resultSet.next()) { //Here the code crashes because the ResultSet can sometimes be empty.
Я думаю, что это фактическое сообщение об ошибке: слушатель отклонил соединение со следующей ошибкой: ORA-12519, TNS: не найден соответствующий обработчик службы
Но я нене совсем понимаю, что мне теперь делать ..
try {
ResultSet resultSet = getRecords("SELECT * FROM uitlening");
while(resultSet.next()) {
Uitlening uitlening = new Uitlening();
uitlening.setNr(resultSet.getInt("nr"));
uitleningen.add(uitlening);
}
} catch (SQLException e) {
e.addSuppressed(e);
}
return uitleningen;
Это может быть ничто, но похоже, что ошибка возникает только тогда, когда я запускаю 2 запроса почти сразу после друг друга.Возможно ли, что закрытие соединения займет некоторое время?