Re: 关于返回记录集ResultSet的问题!
java ResultSet 只是数据库的一个连接。你要把它读取出来。
放在自己的ResultSet中。
自己New一个ResultSet类,继承JavaResultSet
然后怎么操作都可以了。
JSP中的JavaBean返回resultset的问题
现在状况如下:
两个Bean a.java b.java
1.a.java
//...
ReslutSet rs=null;
public ResultSet executeQuery(String sql){
//....取得ReslutSet的方法
this.rs=stmt.executeQuery(sql);;//获了一次记录集
return this.rs;
}
public void rs_close(){
this.rs.close();
}
2.b.java
//...
a a=new a();
Reslultset rs2;
rs2=a.executeQuery("select * ...");//------------------x
a.rs_close();// 这句是我想问的问题---------------------y
如果我执行了y句以后,再到rs2里面取值时,发现里面空空如也,x句到底做了些什么呢,他没有把记录集真正的传给rs2吗,我关闭对象a里面的rs 还会影响外面的rs2,这是怎么回事啊
如果不执行y句,可以从rs2中取到值
--------------------------------------------------------------------------------
回复:JSP中的JavaBean返回resultset的问题
rs2 和 rs 都是同一个结果对象的 引用
对rs2或者rs 进行关闭 实际上是关闭同一个对象
这种情况 最好把rs里面值放到容器里面 来传递
--------------------------------------------------------------------------------
回复:JSP中的JavaBean返回resultset的问题
是引用阿
--------------------------------------------------------------------------------
回复:JSP中的JavaBean返回resultset的问题
同意楼上~~~ 你可以再建立一个javaBean来关闭result~~
等到所有数据都处理完毕了,再执行这个javaBean
--------------------------------------------------------------------------------
回复:JSP中的JavaBean返回resultset的问题
建议lz好好看一下《编程思想〉的第二张
rs 把它引用的对象传递给了rs2,两个同时引用的是同一个对象,要是关闭一个,另一个也关闭了。
分享到:
相关推荐
在 Java 中,使用 JDBC 连接数据库时,通常会返回一个 ResultSet 对象,该对象包含了查询结果集的所有记录。为了方便数据处理和使用,我们需要将 ResultSet 转为 List,以便于后续的数据处理和展示。 下面是将 ...
### CallableStatement调用Oracle存储过程返回结果集(ResultSet) #### 一、无返回值的存储过程调用 在本节中,我们通过一个具体的例子来详细介绍如何使用`CallableStatement`来调用Oracle数据库中的无返回值存储...
本篇将详细介绍如何使用CallableStatement调用Oracle存储过程,并处理返回的结果集(ResultSet)。 一、无返回值的存储过程 在Oracle中,一个无返回值的存储过程可能只执行某些操作,例如插入数据。以下是一个简单...
它代表了从数据库查询返回的数据集,允许程序员逐行地访问和操作这些数据。本文将深入探讨ResultSet的两个关键特性:更新当前行的列值和使用插入行来添加新记录。 1. 更新当前行的列值: 当处理可更新的ResultSet...
过程返回记录集 下面是一个简单的示例,展示如何创建一个存储过程来返回结果集: ```sql CREATE OR REPLACE PACKAGE pkg_test AS TYPE myrctype IS REF CURSOR; -- 定义 Ref Cursor 类型 PROCEDURE get(p_id ...
ResultSet是Java数据库连接(JDBC)中的一个核心接口,它用于存储从数据库查询返回的结果集。在处理SQL查询结果时,开发人员通常会与ResultSet对象交互以获取和操作数据。以下是对ResultSet常用方法的详细解释: 1....
数据集(ResultSet)通常是由数据库查询操作返回的结果,而List是Java集合框架中的一个重要类,用于存储一组有序的元素。这个程序能够帮助开发者将这两种数据结构便捷地转化为JSON格式,便于在网络间传输或存储。 ...
本篇笔记将深入探讨2010年6月23日记录的一些关于ResultSet的常用操作,结合实例进行讲解。 1. 创建与初始化 在Java中,我们通常通过Statement或PreparedStatement对象的executeQuery()方法执行SQL查询来获取...
2. **可滚动的ResultSet**:这类`ResultSet`支持前后滚动读取记录,即可以通过`next()`、`previous()`方法在结果集中自由移动,同时还能直接跳转至结果集的任意位置或相对于当前位置的偏移量处。实现此类`ResultSet`...
`ResultSet`对象是一个接口,它表示从数据库查询中返回的数据集合,这些数据通常以表格形式存在,每行数据对应`ResultSet`的一个记录。在处理大量数据时,了解并熟练使用`ResultSet`的方法是非常重要的。 1. **创建...
next() 方法在 ResultSet 对象没有一行记录时返回 false,因此可以在 while 循环中使用它来遍历结果集,也可以利用该方法判断结果集是否为空。 getRow() 方法是 ResultSet 对象的一个重要方法,它可以返回当前指针...
将ResultSet中得到的一行或多行结果集封装成对象的实例 将ResultSet中得到的一行或多行结果集封装成对象的实例是指在使用JDBC连接数据库时,将查询结果集转换成对象的实例,以便更方便地访问和操作数据库中的数据。...
这是因为 ResultSet.next() 方法需要等待数据库返回结果集的下一条记录。 解决这个问题的一种方法是使用计数来判断是否还有下一条记录,而不是使用 ResultSet.next() 方法。例如: ```java int startIdx = 0; int ...
在Oracle数据库中,游标是一种重要的工具,用于处理和返回多行结果集。在这个例子中,我们将探讨如何通过存储过程和游标返回结果集。游标允许我们在处理数据时逐行移动,这对于需要循环访问数据库记录的情况非常有用...
查询执行后,通过“executeQuery()”方法得到ResultSet结果集。 ResultSet是JDBC中用于表示数据库查询结果的一个接口,其中包含了查询返回的行以及列。它类似于一个游标,可以通过它来遍历返回的行数据。示例代码中...
ResultSet是数据库查询返回的结果集,如果不加以管理,可能会导致内存占用过多。关闭不再使用的ResultSet可以释放资源,提高系统性能。在P6Spy中,可以通过配置来控制对ResultSet的处理,例如设置合适的fetch size,...
综上所述,本文详细介绍了如何在Java中调用SQL Server存储过程,包括无结果集返回的调用、返回单个SQL类型数据的调用以及返回记录集的调用。这些知识点对于进行数据库操作具有重要的实际应用价值。
1. **可滚动、更新的记录集** - 创建可滚动的`Statement`: ```java Statement sm = cn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); ``` - 创建可滚动的`...
- 可以通过`ResultSet.getMetaData()`方法获取`ResultSetMetaData`对象,该对象包含了关于结果集的元数据信息,如列的数量、列名等。 - 例如,可以通过`ResultSetMetaData.getColumnCount()`获取列的数量,通过`...