个Statement 实例, 并且在联接的生存期里使用之。 你必须记住每个Statement或 PreparedStatement只能存在一个 ResultSet。 如果你需要在处理一个ResultSet的时候执行一个查询, 你只需要创建并且使用另外一个Statement。 如果你使用了 threads (线程),并且有几个使用数据库, 你对每个线程必须使用一个独立的Statement。 如果考虑使用线程, 请参考本文档稍后的 Section 31.8 章节, 因为这些内容包含一些重要的信息。 在你用完 Statement 或者 PreparedStatement 之后,你应该关闭它。 31.3.2. 使用ResultSet(结果集)接口 使用ResultSet接口时必须考虑下面的问题: 在读取任何数值的时候,你必须调用next()。 如果还有结果则返回真(true),但更重要的是,它为处理准备了数据行。 在 JDBC 规范里,你对一个字段应该只访问一次。 遵循这个规则是最安全的,不过目前 PostgreSQL 驱动将允许你对一个字段访问任意次。 一旦你结束对一个 ResultSet 的处理,你必须对之调用 close()来关闭它。 一旦你使用那个创建ResultSet的 Statement做另一个查询请求, 当前打开的 ResultSet 实例将自动关闭。 目前的 ResultSet 是只读的。 你不能通过 ResultSet 来更新数据。 如果你想更新数据,那么你就需要使用普通的方法来做∶ 通过发出一条 SQL 更新语句。这么做是和 JDBC 规范兼容的,它并不要求驱动提供可更新的结果集的支持。
作者“ERDP技术架构”
|