秦家小小神
2017-07-29 10:12
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对象的字段信息的!!!
重写tostring方法了
我自己找到如何遍历女神信息的方法了!老师估计是漏录了部分代码。
以下是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) } }
/** * 在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方法
JDBC之 “ 对岸的女孩看过来”
99327 学习 · 856 问题
相似问题