2011-10-06 20 views
1

セッションで結果セットを配置する際の短所は何ですか?そうでない場合は最高の方法です。List<Map<String,String>>に配置しようとしましたが、パフォーマンスに影響しませんか?セッション内の結果セット

答えて

5

ResultSetは、データベースへのオープン接続を表します。一般的には、データを取得してプールへの接続をできるだけ早く戻したいとします。 ResultSetをセッションに格納すると、接続が長時間閉じられず、プールが使い果たされたり、データベースリソースが不必要に縛られたりする可能性があります。

3

永続性クラスjava.sqlは、Web層から100フィート以内にならないようにしてください。彼らは永続層から逃げるべきではありません。すべてのResultSetを、それが作成されたメソッドスコープのデータ構造またはオブジェクトにロードして閉じなければなりません。これは、データベースのカーソル、希少なリソースです。

あなたの最善の選択肢はList<Map<String, String>>ではありません。結局のところ、データベースのすべての値は文字列ではありません。 List<Map<String, Object>>を使用する方が良いでしょう。ここで、Mapは行を表します。別の可能性はMap<String, List<Object>>であり、各List<Object>は列を表す。あなたのユースケースに最も便利なものを使用してください。何よりも、List<T>を使用してください。Tは、すべての列を実際に結ぶオブジェクトのタイプです。

関連する問題