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的值),同时能得到第一行的数据呢?不想重复写代码①
ä¸è¡çï¼å 为å¨æ§è¡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){}
è¿æ ·æ¯å¦å¯è¡å¢ã
å¦ær!=0ï¼åç´æ¥æ§è¡ä¸é¢çwhileï¼è¿ä¸ªæ¶åç»æéç游æ æ¯æå¨æåä¸è¡çï¼æ以æ§è¡rs.nextï¼ï¼æ¯å¾ä¸å°æ°æ®çï¼è¿æ ·ä¸å¯¹ãæåæ¥æ³å°ä¸ä¸ªæ¹æ³æ¯å¯ä»¥çï¼è·ä½ å ±äº«ä¸ä¸ï¼å¨ ârs.first();âåé¢åârs.previous();âå°±æ¯æ游æ æ¾å°ç¬¬ä¸è¡çåä¸è¡ï¼ç¶åæ§è¡while(rs.next()){......}è¿æ ·å°±å¯ä»¥äºã
追çå¯