dao中方法get() ,獲得一個對象時為何還要while(rs.next)?
public goddess get(Integer id) throws Exception{
??Connection conn=DBUtil.getConnection();
??String sql=""+
???" select * from goddess "+
???" where id =? ";
??PreparedStatement ptmt=conn.prepareStatement(sql);
??ptmt.setInt(1, id);?
??ResultSet rs=ptmt.executeQuery();//executeQuery()用來執(zhí)行查詢
????? goddess g;
???g=new goddess();
???while(rs.next()){
????g.setUser_name(rs.getString("user_name"));
????g.setAge(rs.getInt("age"));
????g.setEmail(rs.getString("email"));
???}
???return g ;
?}
既然數(shù)據(jù)庫查詢返回已經(jīng)是一個條目了,為什么還要循環(huán)賦值?
難道rs.next() 不是讀取下一個條目?
2017-05-14
每次返回的都是一個結(jié)果集,哪怕結(jié)果集是只有一個元素
2017-04-25
我也覺得沒必要,因為傳入的是ID,ID 唯一。但我覺得如果傳入的參數(shù)是生日或姓名等可能重復的條件,該語句就變得有意義了,所以說應該是編寫習慣,這樣的程序更具有普遍性。
2017-03-30
判斷返回集是否有數(shù)據(jù),有則為true
然后由于get方法是通過id獲取數(shù)據(jù),而id設為主鍵,所以id唯一,實際上如果讀取到數(shù)據(jù),rs.nest()為true,此時返回集也只有一個數(shù)據(jù),下次rs.nest()的值就為false,然后該段代碼退出死循環(huán)