我是一名学生,我们的一项任务是在本地 GlassFish 5 网络服务器上创建一个 Java Web 项目。本项目使用的数据库是在 Docker 容器中本地运行的 OracleDB。
我几乎完成了我的项目,但有些页面不断崩溃(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 个查询时。关闭连接是否可能需要一段时间?