私の目標は、MySqlデータベースとのすべての対話を単一のクラス(例:SqlUtils)に集中化することです。ResultSet
基本的に、接続が閉じられた後も、または同様のクラスへのアクセスを維持したいと思います。次の方法は、ビジネスメソッドがResultSetを受け取った後は機能しません。基になる接続がすでに閉じられているため、例外がスローされます。データベースへの接続の開閉は、内部で行う必要があることを強調したいと思いますgetResultSet()
。
public ResultSet getResultSet(String sql) {
try (Connection conn = getConnection();){
return conn.createStatement().executeQuery(sql);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
私が今やろうと思っているのは、次のようなものです。
public List<ResultHolder> getResultSet(String sql) {
List<ResultHolder> list = new LinkedList<>();
try (Connection conn = getConnection();
ResultSet res = conn.createStatement().executeQuery(sql);) {
while(res.next()) {
list.add(res.convertToResultHolder());
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
私が必要なことをするクラスはありますか?私はそれを表現しましResultHolder
た。