秦家小小神
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之 “ 对岸的女孩看过来”
99334 学习 · 916 问题
相似问题