在取结果时用for循环,用参数来控制要取出记录的条数。
例如:
for(int i=0;i<=10;i++)
{
………………
……………… if(!rs.next())
break;
}
例如:
for(int i=0;i<=10;i++)
{
………………
……………… if(!rs.next())
break;
}
解决方案 »
- java 做网络连接情况 ext图形展示
- java
- 求助ext2.1关于gride如何去掉各表头的‘列可选和升降序’下拉框
- 关于PreparedStatement,在运行成功后为什么记录并没有插入到数据库中?
- 求助,友好显示如何做,请教各位大哥大姐指条路
- 数据写到客户端不能保存为txt或html?为什么?
- 网络支付方式
- freemarker与jquery整合
- 关于发送邮件时的中文问题?
- 单点登录如果用独立数据库,子系统查询列表需要关联用户表怎么办?还有微服务也是一样,如何处理
- 急求jdk问题,在线等待
- {求助}请问JAVA板块中怎么实现servlet程序,怎么输出中文啊?最好用什么软件编辑软件?
表示第11条到第30条记录
//每次取设置的最大值,系统默认为:一次取10条记录
stmt.setMaxRows(10+ 1);
ResultSet rs = stmt.executeQuery(sql);
if (rs != null)
{
int n = 0;
while (rs.next()) {
n++;
//循环取出只包含在开始记录数和结束记录数之间的记录。
if (n < startPoint) {
continue;
} if (n <= endPoint) {
//需要取的数据
}
}
}
这里的limit其实相当于mysql做了(分页的工作).建议如下做:
假定表a有id字段从1开始到10000,共RowsCount=8515中间有删除你要通过策略取的改数)
假定没页显示数据为PageSize为5.
现在取得第二页8,9,11,16,21 记下minid=8,maxid=21
如果是取第三页你可以这样写:select * from a where a.id>maxid limit 1,5
如果是第一页你可以写:select * from a where a.id<minid order by id desc limit 0,5
如果是跳转,你要计算minid,maxid
在你说的系统中千万不要把逻辑运算交给数据库.
這樣一來就不用全部都放在rs中了。