读书人

惊人?Hibernate 取HashMap的数据

发布时间: 2012-10-30 16:13:36 作者: rapoo

紧急?Hibernate 取HashMap的数据
//这是两个表的连接查询,我在页面上的显示,只能显示最后一条纪录!!
//这是我写的方法
public static HashMap lookall()
{
List list=new ArrayList();
Transaction tx=null;
Session session=null;
HashMap ham=null;

try{
session=HibernateSessionFactory.getCurrentSession();
Query query=session.createQuery("select a.age,b.bookname from Author a,Books b where b.id=a.id");
list=query.list();
Iterator it=list.iterator();
while(it.hasNext())
{
Object[]ob=(Object[])it.next();
ham=new HashMap();
Integer age=(Integer)ob[0];
String bookname=(String)ob[1];
ham.put("age", age);
ham.put(bookname, bookname);
Integer age1=(Integer) ham.get("age");
String bookname1=(String) ham.get("bookname");
System.out.println("age:"+age);
System.out.println("bookname"+bookname);
}
}
catch(HibernateException e)
{
if(tx!=null)
{
try {
tx.rollback();
} catch (HibernateException e1) {
e1.printStackTrace();
}
}
}
finally
{
try {
HibernateSessionFactory.closeCurrentSession();
} catch (HibernateException e) {
e.printStackTrace();
}
}
return ham;
}

==================================================================================
//我的Jsp页面里的

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<title>My JSP 'lookall.jsp' starting page</title>

</head>
<body>
<%
HashMap ham=(HashMap)request.getAttribute("ham");
%>
<table>
<tr><td>age</td><td>bookname</td></tr>
<%
Iterator it=ham.keySet().iterator();
while(it.hasNext())
{
System.out.println("it.Next数据的值是:"+ham.get(it.next()));
//Object[] bean=(Object[])it.next();
//Integer age=(Integer)bean[0];
//String bookname=(String)bean[1];
//System.out.println(age);
//System.out.println(bookname);

// Hashtable hst=new Hashtable();
//hst.put("age",age);
//hst.put("bookname",bookname);
//Enumeration em=hst.elements();
//Integer age=ham.get("age");
//String bookname=ham.get("bookname");

%>
<tr><td><%=1%></td><td><%=1%></td></tr>
<%
}
%>
</table>
</body>
</html>


==========================
我还想,把<tr><td><%=1%></td><td><%=1%></td></tr>中的1换成age和bookname
1 楼 wtb 2006-12-11 你在while里面建hashmap,每次循环都新建了一个新的对象,你怎么能用一个hashmap存下所有的记录了?应该把while里面的new hashmap删除。
2 楼 together 2006-12-11 while(it.hasNext())
{
Object[]ob=(Object[])it.next();
ham=new HashMap();

look,这要不返回最后一条记录才怪 3 楼 joynet007 2006-12-11 dui---感谢!!!!

读书人网 >软件架构设计

热点推荐