java 多次查询数据库_java – 多次查询数据库的首选方式?

是的,您可以重用Statement对象,但executeQuery返回的ResultSet对象已关闭已打开的结果集.

By default, only one ResultSet object per Statement object can be open

at the same time. Therefore, if the reading of one ResultSet object is

interleaved with the reading of another, each must have been generated

by different Statement objects. All execution methods in the Statement

interface implicitly close a statment’s current ResultSet object if an

open one exists.

所以发生以下情况:

// load driver

Connection con = DriverManager.getConnection(..);

Statement stmt = con.createStatement();

ResultSet result = stmt.executeQuery("select ..");

// do something with result ... or not

ResultSet result2 = stmt.executeQuery("select ...");

// result is now closed, you cannot read from it anymore

// do something with result2

stmt.close(); // will close the resultset bound to it

protected void initialize() throws SQLException {

updateCount = -1;

resultQueue.clear();

genKeyResultSet = null;

tds.clearResponseQueue();

// FIXME Should old exceptions found now be thrown instead of lost?

messages.exceptions = null;

messages.clearWarnings();

closeAllResultSets();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值