如何判断结果集是否为空?在线等 whlie (rs.next)就可以判断是否为空rs.first()不是jsp不支持,而是你的数据库提供的驱动不支持 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);最初得到的rs的rs.next()为空则结果集为空,否则rs.beforeFirst() 我一直都用rs.next()来判断!还有如果rs.getMetaData().getClumnCount()==-1则结果集也为空!//rs.getMetaData().getClumnCount()结果集的记录数,等于-1则为空:) 用rs.next()判断是否为空的时候有问题啊!!!比如说我取出的结果集有3条记录,前两条的rs.next()判断为真,而的三条的rs.next()的判断则为false了。还有,请教一下数据库的驱动是指什么?我用的数据库是oracle9i 一般如果没有移动游标的话,它开始是指象第一条数据之前只要用if(rs.next()) { }就可以了如果没有在第一条的话就要创建可滚动的数据集,把它移到第一条记录前 if(rs == null){ 读取数据库错误}if(rs.size() == 0){ 表示没有找到相应的记录}if(rs.next)为false也表示为空 "一般如果没有移动游标的话,它开始是指象第一条数据之前"如果这是正确的话,则rs.next实际上指的就是当前记录 rs.next()指向下一个记录!但是对于第一个记录(如果存在)来说,它是没有所谓的“上一个记录”。通常都是使用rs.next()来判断结果集是否已经到末尾,通常有两种使用方式:1、if加while;2、while;对于1来说,通常用于在某个成员方法中调用另一个子方法(可以在子方法中执行循环)或执行别的操作,有如下逻辑:“若结果集不为空,则调用子方法或执行别的操作”。对于2来说,在一个成员方法中进行判断并操作,有如下逻辑:“若结果集未结束,则循环执行指定操作”。注:必须注意使用if判断完后,实际rs的游标(虽然java中没有指针的概念,但是这里使用指针更利于理解)已经移动一位!此后不能使用while,而应该使用do while,否则就会缺少一个记录。 to biscuit50 (饼干) :对于你说的“当结果集非空时做一些处理,用whlie (rs.next)判断的时候,最后一条记录虽然得到,但它的next为空。”既然你是在“结果集非空时作一些处理”,那么使用while足够了,至于“它的next为空”就不用再考虑了。如果你是想在结果集为空时做一些处理,那么先使用if判断然后使用do while即可。一个简单的使用if判断的算法:if(!rs.next()){ //结果集为空 //执行某操作}else{ //不为空 do { //循环执行某操作 }} 晕阿,少写了个while,更正一下:if(!rs.next()){ //结果集为空 //执行某操作}else{ //不为空 do { //循环执行某操作 }while(rs.next());} jsp乱码问题 struts2的一个很初级的问题--刚才发过一遍,现在追加问一下 struts 标签嵌套去数据问题 图片上传问题 SQLServer数据库 [高分!]jsp中模糊查询的问题! 在eclipse中项目制作中生成的work文件 关于在jsp页面上利用代码画图(急!!!救命!新手) 问一个ultraedit的问题 关于javascript问题 求围观!!!!!!!!!!!!!!!!! 谁作过“基于WEB的图书馆里系统” 新人新苦恼 岁末问答题 while语句中使用了javascript 的一个问题 很着急
还有如果rs.getMetaData().getClumnCount()==-1则结果集也为空!
//rs.getMetaData().getClumnCount()结果集的记录数,等于-1则为空:)
比如说我取出的结果集有3条记录,前两条的rs.next()判断为真,而的三条的rs.next()的判断则为false了。
还有,请教一下数据库的驱动是指什么?我用的数据库是oracle9i
只要用if(rs.next())
{
}
就可以了
如果没有在第一条的话就要创建可滚动的数据集,把它移到第一条记录前
{
读取数据库错误
}
if(rs.size() == 0){
表示没有找到相应的记录
}
if(rs.next)
为false也表示为空
如果这是正确的话,则rs.next实际上指的就是当前记录
通常都是使用rs.next()来判断结果集是否已经到末尾,通常有两种使用方式:
1、if加while;
2、while;
对于1来说,通常用于在某个成员方法中调用另一个子方法(可以在子方法中执行循环)或执行别的操作,有如下逻辑:
“若结果集不为空,则调用子方法或执行别的操作”。
对于2来说,在一个成员方法中进行判断并操作,有如下逻辑:
“若结果集未结束,则循环执行指定操作”。注:必须注意使用if判断完后,实际rs的游标(虽然java中没有指针的概念,但是这里使用指针更利于理解)已经移动一位!此后不能使用while,而应该使用do while,否则就会缺少一个记录。
对于你说的
“当结果集非空时做一些处理,用whlie (rs.next)判断的时候,最后一条记录虽然得到,但它的next为空。”
既然你是在“结果集非空时作一些处理”,那么使用while足够了,至于“它的next为空”就不用再考虑了。
如果你是想在结果集为空时做一些处理,那么先使用if判断然后使用do while即可。
一个简单的使用if判断的算法:
if(!rs.next())
{
//结果集为空
//执行某操作
}
else
{
//不为空
do
{
//循环执行某操作
}
}
if(!rs.next())
{
//结果集为空
//执行某操作
}
else
{
//不为空
do
{
//循环执行某操作
}while(rs.next());
}