社区
Java SE
帖子详情
resultset定位的问题!
redjava
2003-09-14 09:06:51
请问first是定位是第一个记录还是之前?
beforefirst呢?
...全文
27
1
打赏
收藏
resultset定位的问题!
请问first是定位是第一个记录还是之前? beforefirst呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
LingFengNB
2003-09-14
打赏
举报
回复
first是定位在第一条那里
beforeFirst()是定位在第一条前面的
rs一开始是定位在第一条的前面
java
resultset
常用方法
一些常用的
resultSet
用法
ResultSet
.TYPE_FORWARD_ONLY:(缺省类型),
ResultSet
指针只允许向前移动,并且不会受到其他用户对该数据库所作更改的影响。 TYPE_SCROLL_INSENSITIVE:
ResultSet
指针可以前后移动,甚至可以进行特定
定位
,例如移至列表中的第四个记录或者从当前位置向后移动两个记录。不会受到其他用户对该数据库所作更改的影响。
使用JDBC从数据库中查询数据的方法
*
ResultSet
结果集:封装了使用JDBC 进行查询的结果 * 1. 调用Statement 对象的 executeQuery(sql) 方法可以得到结果集 * 2.
ResultSet
返回的实际上就是一张数据表,有一个指针指向数据表的第一行的前面, * 可以调用next()方法检测下一行是否有效,若有效,返回true,且指针下移, * 相当于iterator 对象的 hasNext() 和 next()方法的结合体 * 3. 当指针
定位
到一行时,可以通过调用getXxx(index) 方法或 getXxx(columnName) 方法获取 * 每一列的值。例如:getI
JSP分页(技术)代码
目前比较广泛使用的分页方式是将查询结果缓存在HttpSession或有状态bean中,翻页的时候从缓存中取出一页数据显示。这种方法有两个主要的缺点:一是用户可能看到的是过期数据;二是如果数据量非常大时第一次查询遍历结果集会耗费很长时间,并且缓存的数据也会占用大量内存,效率明显下降。 其它常见的方法还有每次翻页都查询一次数据库,从
ResultSet
中只取出一页数据(使用rs.last();rs.getRow()获得总计录条数,使用rs.absolute()
定位
到本页起始记录)。这种方式在某些数据库(如oracle)的JDBC实现中差不多也是需要遍历所有记录,实验证明在记录数很大时速度非常慢。 至于缓存结果集
ResultSet
的方法则完全是一种错误的做法。因为
ResultSet
在Statement或Connection关闭时也会被关闭,如果要使
ResultSet
有效势必长时间占用数据库连接。
JSP分页技术实现.mht
目前比较广泛使用的分页方式是将查询结果缓存在HttpSession或有状态bean中,翻页的时候从缓存中取出一页数据显示。这种方法有两个主要的缺点:一是用户可能看到的是过期数据;二是如果数据量非常大时第一次查询遍历结果集会耗费很长时间,并且缓存的数据也会占用大量内存,效率明显下降。 其它常见的方法还有每次翻页都查询一次数据库,从
ResultSet
中只取出一页数据(使用rs.last();rs.getRow()获得总计录条数,使用rs.absolute()
定位
到本页起始记录)。这种方式在某些数据库(如oracle)的JDBC实现中差不多也是需要遍历所有记录,实验证明在记录数很大时速度非常慢。 至于缓存结果集
ResultSet
的方法则完全是一种错误的做法。因为
ResultSet
在Statement或Connection关闭时也会被关闭,如果要使
ResultSet
有效势必长时间占用数据库连接。
很好的一个jsp分页
很好的jsp分页,目前比较广泛使用的分页方式是将查询结果缓存在HttpSession或有状态bean中,翻页的时候从缓存中取出一页数据显示。这种方法有两个主要的缺点:一是用户可能看到的是过期数据;二是如果数据量非常大时第一次查询遍历结果集会耗费很长时间,并且缓存的数据也会占用大量内存,效率明显下降。 其它常见的方法还有每次翻页都查询一次数据库,从
ResultSet
中只取出一页数据(使用rs.last();rs.getRow()获得总计录条数,使用rs.absolute()
定位
到本页起始记录)。这种方式在某些数据库(如oracle)的JDBC实现中差不多也是需要遍历所有记录,实验证明在记录数很大时速度非常慢。 至于缓存结果集
ResultSet
的方法则完全是一种错误的做法。因为
ResultSet
在Statement或Connection关闭时也会被关闭,如果要使
ResultSet
有效势必长时间占用数据库连接。 因此比较好的分页做法应该是每次翻页的时候只从数据库里检索页面大小的块区的数据。这样虽然每次翻页都需要查询数据库,但查询出的记录数很少,网络传输数据量不大,如果使用连接池更可以略过最耗时的建立数据库连接过程。而在数据库端有各种成熟的优化技术用于提高查询速度,比在应用服务器层做缓存有效多了。
Java SE
62,614
社区成员
307,326
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章