小弟以前是学.NET的,刚学JSP,有些不明白的地方想请教各位前辈
利用JDBC访问数据库,使用查询返回ResultSet结果集。使用While(rs.Nest())遍历ResultSet的过程中,数据库连接释放了吗?是直接对数据库进行操作吗?还是像.NET的DataSet一样先将查询的结果集存放在本地,然后再对其进行操作?
------解决方案--------------------------------------------------------
使用While(rs.Nest())遍历ResultSet的过程中,数据库连接释放了吗?
——一般情况下,是不能释放的,释放了就没法next()了。
是直接对数据库进行操作吗?
——有预读的能力,但可以理解为直接对数据库操作。
还是像.NET的DataSet一样先将查询的结果集存放在本地,然后再对其进行操作?
——不是这种。但也有可以支持这种的,要用CachedRowSet,可以把数据先全部下载完毕。
------解决方案--------------------------------------------------------
非常肯定的告诉你,没有。在遍历结果集的时候,数据库连接如果断开,ResultSet将无法遍历数据,除非使用特殊的可缓存的结果集,实际java程序员都会用数据库连接池 来提高性能,也会将ResultSet的结果转换为VO对象缓存在另外的地方,这样就可以不依赖数据库连接。