Java 用于存储数据库数据的ResultSet的替代方案

Java 用于存储数据库数据的ResultSet的替代方案,java,sql,jdbc,prepared-statement,resultset,Java,Sql,Jdbc,Prepared Statement,Resultset,我有一个数据库,目前我正在使用PreparedStatement使用SQL语句从数据库调用数据。但是,我知道一旦PreparedStatement完成,结果集就会关闭 我需要一个替代方法(resultset关闭),因为每次用户单击按钮时都会运行Prepared语句,并且Prepared语句的输入可以更改,但是resultset不能接受任何新值 如果您有任何想法,我们将不胜感激。在关闭PreparedStatement之前,您应该将ResultSet中的数据复制到您自己的对象中 例如: prepa

我有一个数据库,目前我正在使用PreparedStatement使用SQL语句从数据库调用数据。但是,我知道一旦PreparedStatement完成,结果集就会关闭

我需要一个替代方法(resultset关闭),因为每次用户单击按钮时都会运行Prepared语句,并且Prepared语句的输入可以更改,但是resultset不能接受任何新值


如果您有任何想法,我们将不胜感激。

在关闭
PreparedStatement
之前,您应该将
ResultSet
中的数据复制到您自己的对象中

例如:

preparedStatement = conn.prepareStement("select * from people");

resultSet = preparedStatement.executeQuery();

//copying the value
while(resultSet.hasNext()){
    String name = resultSet.getString("name");
    String surname = resultSet.getString("surname");

    //Person is a class of your own
    Person person = new Person(name,surname); 

    //people is a Collection of Person created outside this loop
    people.add(person); 
}

之后,请确保在
finally
块中关闭
PreparedStatement
,并使用
人员
集合中的对象,而不是直接使用
结果集

抱歉,我不能完全理解您的最后一点人员。添加(人员)。你怎么能把“人”变成“类人”的集合呢?我把“人”(而不是“人”)变成“人”的集合。您可以使用
Collection people=new LinkedList()实现这一点