java JDBC获得数据库结果集的行数但少了第一行的数据

Stringsql="SELECT*FROMTABLEONE";ResultSetrs=conn.getExecuteQuery(sql);try{rs.last();i... String sql = "SELECT * FROM TABLEONE";
ResultSet rs = conn.getExecuteQuery(sql);
try {
rs.last();
int r = rs.getRow();
if(r==0){//如果表1没查到值,则查询表2
sql="SELECT * FROM TABLETWO";
rs = conn.getExecuteQuery(sql);
}
//若表1查到值输出
rs.first();//--------------得到的结果集少了第一行的原因
while(rs.next()){
.....//获得结果集各行的值的代码①
}
}catch(SQLException e){}
//但是得到的结果集少了第一行

我要怎么样才能得到同样的效果(查表1,没查到值则查表2,查到则输出表1的值),同时能得到第一行的数据呢?不想重复写代码①
展开
 我来答
大雁南飞
推荐于2016-06-28 · 知道合伙人互联网行家
大雁南飞
知道合伙人互联网行家
采纳数:1660 获赞数:26106
编码爱好者

向TA提问 私信TA
展开全部
String sql = "SELECT * FROM TABLEONE";
ResultSet rs = conn.getExecuteQuery(sql);
try {
if(!rs.next()){//如果表1没查到值,则查询表2
sql="SELECT * FROM TABLETWO";
rs = conn.getExecuteQuery(sql);
}
//若表1查到值输出
while(rs.next()){
.....//获得结果集各行的值的代码①
}
}catch(SQLException e){}

改成这样试试。
更多追问追答
追问
不行的,因为在执行while之前已经执行了一次next(),而且它执行了却没有得到结果值,所以第一行还是没有获取到。
追答
String sql = "SELECT * FROM TABLEONE";
ResultSet rs = conn.getExecuteQuery(sql);
try {
rs.last();
int r = rs.getRow();
if(r==0){//如果表1没查到值,则查询表2
sql="SELECT * FROM TABLETWO";
rs = conn.getExecuteQuery(sql);
while(rs.next()){
.....//获得结果集各行的值的代码①
}
return; //结束
}
//若表1查到值输出
while(rs.next()){
.....//获得结果集各行的值的代码①
}
}catch(SQLException e){}

这样是否可行呢。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式