本節視頻最后根據姓名的查詢怎么可能得到字段信息呢?
GoddessDAO?gd?=?new?GoddessDAO();
//根據姓名查詢女神信息
List<Goddess>?gs?=?gd.query("小美");
System.out.println("查詢結果有"+gs.size()+"條記錄:");
for(int?i=0;i<gs.size();i++){
System.out.println(gs.get(i).toString());
}查詢結果為:
select?*?from?imooc_goddess?where?user_name=? 查詢結果有1條記錄: entity.Goddess@5ce65a89
視頻中的result.get(i)得到的應該是小美這個Goddess對象吧?
不明白為什么老師不需要getter方法、只用toString()是怎么得到Goddess對象的字段信息的?。。?/p>
2018-03-25
重寫tostring方法了
2017-07-29
我自己找到如何遍歷女神信息的方法了!老師估計是漏錄了部分代碼。
以下是GoddessAction中,利用Field類遍歷所查找女神信息的方法:
for(int?i=0;i<gs.size();i++){ System.out.println("******第"+(i+1)+"條記錄******"); for(Field?f:gs.get(i).getClass().getDeclaredFields()){ //private字段需要先獲取權限 f.setAccessible(true); //注意get方法括號內是類類型的實例(obj或類名.Class.newInstance()) System.out.println(f.getName()+"="+f.get(gs.get(i)));//之前報錯寫的是f.get(f) } }2017-07-29
/** ?*?在query方法中傳入參數,如根據女神姓名來查詢 ?*?@return ?*?@throws?SQLException? ?*/ public?List<Goddess>?query(String?name)?throws?SQLException{ //實例化和變量初始化 List<Goddess>?gs?=?new?ArrayList<Goddess>(); Goddess?g?=?null; StringBuilder?sb?=?new?StringBuilder(); sb.append("select?*?from?imooc_goddess?"); //sql查詢條件最好分開寫 sb.append("where?user_name=?"); Connection?conn?=?DBUtil.getConnection(); // //這種方式明顯對維護不友好,棄用 // Statement?stmt?=?conn.createStatement(); // ResultSet?rs?=?stmt.executeQuery("select?user_name,age?from?imooc_goddess"); //sql預編譯 PreparedStatement?ptmt?=?conn.prepareStatement(sb.toString()); ptmt.setString(1,?name); System.out.println(sb.toString()); //執行查詢 ResultSet?rs?=?ptmt.executeQuery(); //每循環一次需要new一個Goddess對象,并add到gs中 while(rs.next()){ g?=?new?Goddess(); g.setId(rs.getInt("id")); g.setUser_name(rs.getString("user_name")); g.setAge(rs.getInt("age")); g.setSex(rs.getInt("sex")); //注意:java.sql.Date是java.util.Date的子集,可直接轉換?。?! g.setBirthday(rs.getDate("birthday")); g.setEmail(rs.getString("email")); g.setMobile(rs.getString("mobile")); g.setCreate_date(rs.getDate("create_date")); g.setCreate_user(rs.getString("create_user")); g.setUpdate_date(rs.getDate("update_date")); g.setUpdate_user(rs.getString("Update_user")); g.setIsdel(rs.getInt("isdel")); gs.add(g); } return?gs; }這是我的含參的query方法