hibernate多表操作复习2

继续之前那个复习,继续那3张表,在此前已经可以联级插入数据,现在来联级检索出3张表的数据,假设要求查出名字为“lzj"的学生在3张表里的所有记录。使用inner join操作。

TstudentDAO:

  public List findall(String name){
  Session session =this.getSession();
  Transaction tx = null;
  Query query = session.createQuery("select t.name,t.email,s.name,tt.times from TStudent t join t.TSubjectses s join t.TTests tt where t.name=:name");
  query.setString("name", name);
  List result = query.list();
     List templist = new ArrayList();
     for (Iterator it = result.iterator();it.hasNext();){
      Object[] row=(Object[])it.next();
      Map mm = new HashMap();
      mm.put("name", (String)row[0]);
      mm.put("email", (String)row[1]);
      mm.put("sname", (String)row[2]);
      mm.put("times", (Integer)row[3]);
      templist.add(mm);
     }
     return templist;
    }


action里只需要一句话:
List results =  tstudentDAO.findall("lzj");
并将结果返回给struts的jsp页面:
if(results!=null){
   HttpSession session=request.getSession();
         session.setAttribute("results",results);
         return mapping.findForward("ok");


jsp页面接受,使用struts标签:

 <logic:present name="results">
     <table border="1">
    <logic:iterate id="element" name="results">
    <tr>
      <td width="100"><bean:write name="element" property="name"/></td>
   <td width="100"><bean:write name="element" property="email"/></td>
      <td width="100"><bean:write name="element" property="sname"/></td>
            <td width="100"><bean:write name="element" property="times"/></td>

<td id="result"></td>
   </tr>
</logic:iterate>
 </logic:present>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值