对于getHibernateTemplate().find(queryString); 返回值有些疑问

我在action中用了以下的代码Listarray=studentDao.findAll();Objecttest=(Object)array.get(0);System... 我在action中用了以下的代码
List array=studentDao.findAll();
Object test=(Object)array.get(0);
System.out.println(test);
打印的结果居然是com.yourcompany.struts.action.Student@1176e5f 与我数据库中的内容不符合啊。。。? 还希望能详细告知于我!
----------------------------------------------
findAll(){ //studentDao.findAl如下l
public List findAll() {
log.debug("finding all Student instances");
try {
String queryString = "from Student";
return getHibernateTemplate().find(queryString);
} catch (RuntimeException re) {
log.error("find all failed", re);
throw re;
}
}

展开
 我来答
不一定是飞机
2011-08-03 · TA获得超过827个赞
知道小有建树答主
回答量:270
采纳率:100%
帮助的人:326万
展开全部
System.out.println() 参数为对象时,会调用它的toString()方法
因为Object是所有类的父类,所以打印student对象会调用Object的toString()方法:
getClass().getName() + '@' + Integer.toHexString(hashCode())

所以打印结果为com.yourcompany.struts.action.Student@1176e5f
更多追问追答
追问
解决的办法呢?
追答
对象是不能直接打印的,你可以强行转换为Student然后调用里面的方法

Student stu = (Student)array.get(0);
汪坚龙
2011-08-03 · TA获得超过293个赞
知道小有建树答主
回答量:181
采纳率:0%
帮助的人:78.9万
展开全部
把Object test=(Object)array.get(0);改成:
Student student=array.get(0);
然后打印student中的属性值:比如System.out.println(student.getName());
你从数据库中拿到的是包含Student对象的集合,要拿出来显示也应该转成student对象。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式