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的值),同时能得到第一行的数据呢?不想重复写代码① 展开
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的值),同时能得到第一行的数据呢?不想重复写代码① 展开
1个回答
展开全部
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){}
改成这样试试。
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){}
这样是否可行呢。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询