java - 调用返回结果集的方法

标签 java jsp exception jdbc resultset

我正在构建一个3层应用程序,它使用java类从dbjsp检索数据用户界面的页面。当我尝试在 jsp 页面中调用返回结果集的方法时,收到以下错误消息:

Operation not allowed after ResultSet closed.

例如我有这样的方法:

public ResultSet getName(String country) throws SQLException {
    String name;
    try {
        open();
        stmt1 = con.prepareStatement(fetchPanepistimio);
        stmt1.setString(1,country);
        rs1 = stmt1.executeQuery();
        stmt1.close();
        close();
    }catch(Exception e2) {
    }

    return rs1;

}

当我在jsp页面中编写以下内容时:

<%

ResultSet rs = panepistimio.getName(country);

while(rs.next()) { %>

...........
<% } %>

我得到了我所描述的异常。您知道出了什么问题吗?预先感谢您

最佳答案

您试图在关闭数据库连接stmt1.close();close();)后访问ResultSet,但这种方式不起作用。 (有关详细说明,请参阅 Oracle's tutorial)。

您应该检索 ResultSet 的内容,然后在 JSP 页面中使用它,而不是让连接保持打开状态。 这样,您就可以将数据库查询的生命周期与 View 生命周期解耦。

关于java - 调用返回结果集的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34329979/

相关文章:

java - Google 应用引擎 1.7.7 问题

java - 关于从 Oracle Forms UI 迁移到 JSP 的建议

java - JSTL forEach 在自定义标签中不起作用

c# - 如何在 F# 中抛出带有有意义消息的异常?

c# - C# (.Net) 中的异常类 : When to Derive from it,?

c# - 关于异步任务,为什么需要 Wait() 来捕获 OperationCanceledException?

java - 从 Eclipse 插件中,如何以编程方式使 Eclipse 编辑某个文件?

java - 如何在执行任何操作之前执行方法(检查用户是否已登录)Struts 2

html - 显示标签定制

java - 如何避免 Struts2 验证