sql語句是這樣寫的String sql2="SELECT count(*) from 表名 where name='"+賬號名+"'";
然後執行sql並判斷
rs=stmt.executeQuery(sql2);
if(rs==null){
System.out.print("未注冊");
addData();
}else{
System.out.print("已注冊");
}
我這樣判斷是錯的,因為沒有注冊過的賬號都是已注冊的。請問要怎麼寫才能正確檢測有沒有被注冊呢
首先,你這個rs是查詢返回的ResutSet對象,不可能為空的;
其次,判斷是否查到結果是通過這個查詢結果的值是否為0,你查詢的是count,如果查到數據就是1,沒有就是0。
所以你的判斷不對,修正代碼如下:
rs=stmt.executeQuery(sql2);
if(rs.next()){
int count = rs.getInt();
if(count==0){
System.out.print("未注冊");
addData();
}else{
System.out.print("已注冊");
}
}else{
System.out.print("沒有查詢到記錄");
}
因為你是select count操作,所以肯定會返回一條記錄的,如果要通過是否查找記錄判斷,應該是select name from xx where name=''
這樣如果沒有next說明沒查到。