dao中方法get() ,獲得一個(gè)對(duì)象時(shí)為何還要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()用來(lái)執(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ù)庫(kù)查詢返回已經(jīng)是一個(gè)條目了,為什么還要循環(huán)賦值?
難道rs.next() 不是讀取下一個(gè)條目?
2017-05-14
每次返回的都是一個(gè)結(jié)果集,哪怕結(jié)果集是只有一個(gè)元素
2017-04-25
我也覺(jué)得沒(méi)必要,因?yàn)閭魅氲氖荌D,ID 唯一。但我覺(jué)得如果傳入的參數(shù)是生日或姓名等可能重復(fù)的條件,該語(yǔ)句就變得有意義了,所以說(shuō)應(yīng)該是編寫習(xí)慣,這樣的程序更具有普遍性。
2017-03-30
判斷返回集是否有數(shù)據(jù),有則為true
然后由于get方法是通過(guò)id獲取數(shù)據(jù),而id設(shè)為主鍵,所以id唯一,實(shí)際上如果讀取到數(shù)據(jù),rs.nest()為true,此時(shí)返回集也只有一個(gè)數(shù)據(jù),下次rs.nest()的值就為false,然后該段代碼退出死循環(huán)