【问题标题】:Resultset in session会话中的结果集
【发布时间】:2011-10-06 23:11:02
【问题描述】:

将结果集放在会话中的缺点是什么?如果不是,那是最好的方法。我尝试将它放在List<Map<String,String>> 中,它不会影响性能吗?

【问题讨论】:

    标签: java session


    【解决方案1】:

    ResultSet 表示与数据库的打开连接;通常,您希望将数据取出并尽快将连接返回到池中。在会话中存储ResultSet 可能会导致连接长时间不会关闭,这可能会耗尽池,或不必要地占用您的数据库资源。

    【讨论】:

      【解决方案2】:

      来自java.sql 的持久性类不应位于 Web 层的 100 英尺范围内。他们永远不应该逃离持久层。您需要将每个ResultSet 加载到创建它的方法范围内的数据结构或对象中并关闭它。它是一种数据库游标,一种稀缺资源。

      你最好的选择不是List<Map<String, String>>;毕竟,数据库中的每个值都不是字符串。最好使用 List<Map<String, Object>> ,其中 Map 表示一行。另一种可能性是Map<String, List<Object>>,其中每个List<Object> 代表一列。使用对您的用例最方便的一种。最重要的是,使用List<T>,其中T 是一个对象的类型,它以真正的方式关联所有这些列。

      【讨论】:

        猜你喜欢
        • 2013-04-15
        • 1970-01-01
        • 2015-06-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-04
        相关资源
        最近更新 更多