ResultSet 的替代方案,用于存储数据库中的数据
Alternative to ResultSet for storing data from database
我有一个数据库,目前我正在使用 PreparedStatement 通过 SQL 语句从数据库中调用数据。但是我知道,一旦 PreparedStatement 完成,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);
}
之后,确保关闭 finnally
块中的 PreparedStatement
,并使用 people
集合中的对象,而不是直接使用 ResultSet
。
我有一个数据库,目前我正在使用 PreparedStatement 通过 SQL 语句从数据库中调用数据。但是我知道,一旦 PreparedStatement 完成,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);
}
之后,确保关闭 finnally
块中的 PreparedStatement
,并使用 people
集合中的对象,而不是直接使用 ResultSet
。