java中用什么对象保存ResultSet

2025-02-21 17:59:58
推荐回答(6个)
回答1:

我们平常不会使用ResultSet 的。 比如一个person表,我们会相对应的建立一个person Class 来和它对应。
这样你查询的时候,循环ResultSet,将数据都放到一个List中去。
如果你不愿意建立这样的Class 。你也可以放到List

你不乐意的话,那就引入SDO吧。

回答2:

你定义了个finally关键字
肯定不能保存resultset
因为程序不管怎样都要执行finally 资源都释放了 怎么保存嘛?
给你个例子
package reg;
import java.sql.*;

public class dbconn
{
String sDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr="jdbc:odbc:reg";
Connection conn=null;
ResultSet rs=null; //用来保存返回的ResultSet对象

public dbconn()
{
try
{
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundException e)
{
System.err.println("Class dbconnect not found!"+e.getMessage());

}
}

public ResultSet EQ(String sql)//方法EQ 返回值为ResultSet
{
rs=null;
try
{
conn=DriverManager.getConnection(sConnStr);
Statement stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
}
catch(SQLException ex)
{
System.err.println(ex.getMessage());
}
return rs;//返回的ResultSet 保存在rs里 rs自身就是ResultSet类型
}

}祝你成功!O(∩_∩)O

回答3:

你重新实例化一个ResultSet 原来那个就还在

回答4:

楼主。。。更具哥多年的经验。。。就是把你的结果处理后放进List里扔回去,顺便说下,一楼的方法不可能行是因为你只是拷贝了对象的引用,而不是值

回答5:

随便给个人吧,
不然还会有人过来解答的。
也没有人会那么在意分数的,
呵呵...

回答6:

使用threadlocal暂时保存rs,pstmt,conn.在外部使用Thread.currentThread().get(),来取。这样,你可以在整条线程中取得rs,conn等。在线程生命周期结束时,释放此连接就可以了。具体操作百度threadlocal用法。