ResultSet的替代方法,用于存储数据库中的数据

时间:2015-02-25 19:53:51

标签: java sql jdbc prepared-statement resultset

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

我需要一个替代方法(结果集结束),因为每次用户单击按钮时都会运行Prepared语句,并且Prepared Statement的输入可以更改,但ResultSet不能采用任何新值。

任何想法都会受到赞赏。

1 个答案:

答案 0 :(得分:2)

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

例如:

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); 
}

之后,请务必关闭PreparedStatement块中的finnally,然后使用people集合中的对象,而不是直接使用ResultSet