我的目标是将与 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
.