论坛首页 Java企业应用论坛

紧急?Hibernate 取HashMap的数据

浏览 2717 次
该帖已经被评为隐藏帖
作者 正文
   发表时间:2006-12-11  
//这是两个表的连接查询,我在页面上的显示,只能显示最后一条纪录!!
//这是我写的方法
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
   发表时间:2006-12-11  
你在while里面建hashmap,每次循环都新建了一个新的对象,你怎么能用一个hashmap存下所有的记录了?应该把while里面的new hashmap删除。
0 请登录后投票
   发表时间:2006-12-11  
while(it.hasNext())
{
Object[]ob=(Object[])it.next();
ham=new HashMap();

look,这要不返回最后一条记录才怪
0 请登录后投票
   发表时间:2006-12-11  
dui---感谢!!!!
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics