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()用來執行查詢
????? 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 ;
?}
既然數據庫查詢返回已經是一個條目了,為什么還要循環賦值?
難道rs.next() 不是讀取下一個條目?
2017-05-14
每次返回的都是一個結果集,哪怕結果集是只有一個元素
2017-04-25
我也覺得沒必要,因為傳入的是ID,ID 唯一。但我覺得如果傳入的參數是生日或姓名等可能重復的條件,該語句就變得有意義了,所以說應該是編寫習慣,這樣的程序更具有普遍性。
2017-03-30
判斷返回集是否有數據,有則為true
然后由于get方法是通過id獲取數據,而id設為主鍵,所以id唯一,實際上如果讀取到數據,rs.nest()為true,此時返回集也只有一個數據,下次rs.nest()的值就為false,然后該段代碼退出死循環