如何以正确的方式处理ResultSet?

时间:2015-05-20 21:09:25

标签: java sqlite jdbc resultset

哪种方法是从Sqlite数据库处理Java中的ResultSet?

目前我有一个" SQL"执行所有SQL查询的类。

如果另一个类需要一些数据它调用SQL类的方法,则SQL类获取ResultSet将其存储在数组或其他内容中并返回该数组。

但那有点愚蠢,我知道这肯定不是正确的方法。

那么如何在不使用这种讨厌的方法的情况下将ResultSet的数据放入其他类?

我奋斗的地方是,一旦Statement关闭,ResultSet就会关闭,所以我不能返回ResultSet。

我很确定我有一个非常大的概念问题,但我不知道如何解决它。

2 个答案:

答案 0 :(得分:2)

您应该将ResultSet映射到一个类并返回该类。

例如,如果您有一个User类,并且user表格中包含name

List<User> results = new ArrayList<User>();
while (resultSet.next()) {
    User user = new User();
    user.setName(rs.getString("name");
    results.add(user);
}

答案 1 :(得分:2)

谈论普通JDBC时的常见做法

  1. 定义您的程序将运行的抽象。
  2. 将这些抽象映射到数据库结构。
  3. 为这些抽象实现类 - 实体。
  4. 在代码中提供一个特殊图层,以便为这些实体执行CRUD操作。
  5. 对于上述设计,建议使用DAO模式 - 它允许您为逻辑上分离的代码部分(例如,单独的实体的单独DAO)分隔数据库访问,从而导致松耦合。

    ResultSet处理而言:

    • 只有DAO才能进行ResultSet处理
    • 应将DAO中的
    • ResultSet翻译成代表程序抽象的类,并且只应从DAO返回这些类