SSH中DAO里多表查询HQL常见写法
当你在学SSH的时候会觉得这个很简单,但如果过几个月,你会忘得干干净净,所以还是记录下吧,一个demo
//根据用户ID找出其它,并关联用户表
public List<Object[]> findbyuserid(int userid){
List<Object[]> list = null;
Session session=HibernateSessionFactory.getSession(); //创建session
int count=0;
try {
String hql="select a,b from TShop a,TUserInfo b where a.TUserInfo.id=b.id and a.TUserInfo.id="+userid+""; //写hql语句
Query q=session.createQuery(hql); //生成Query查询对象
list = q.list(); //执行查询方法,返回list
} catch (Exception e) {
e.printStackTrace();
}finally{
HibernateSessionFactory.closeSession(); //关闭session
return list;
}
}
}
q.uniqueResult 用于返回一个值的时候
多表查询返回一个List<Object[]>
类里遍历
for(Object[] obj:list){
TShop shop = (TShop)obj[0];
TUserInfo userinfo = (TUserInfo)obj[1];
}
前台遍历
<logic:present name="vipshops">
<logic:iterate id="viplist" name="vipshops">
<c:set var="shop" value="${viplist[0]}"></c:set>
<c:set var="userinfo" value="${viplist[1]}"></c:set>
</logic:iterate>
</logic:present>
当你在学SSH的时候会觉得这个很简单,但如果过几个月,你会忘得干干净净,所以还是记录下吧,一个demo
//根据用户ID找出其它,并关联用户表
public List<Object[]> findbyuserid(int userid){
List<Object[]> list = null;
Session session=HibernateSessionFactory.getSession(); //创建session
int count=0;
try {
String hql="select a,b from TShop a,TUserInfo b where a.TUserInfo.id=b.id and a.TUserInfo.id="+userid+""; //写hql语句
Query q=session.createQuery(hql); //生成Query查询对象
list = q.list(); //执行查询方法,返回list
} catch (Exception e) {
e.printStackTrace();
}finally{
HibernateSessionFactory.closeSession(); //关闭session
return list;
}
}
}
q.uniqueResult 用于返回一个值的时候
多表查询返回一个List<Object[]>
类里遍历
for(Object[] obj:list){
TShop shop = (TShop)obj[0];
TUserInfo userinfo = (TUserInfo)obj[1];
}
前台遍历
<logic:present name="vipshops">
<logic:iterate id="viplist" name="vipshops">
<c:set var="shop" value="${viplist[0]}"></c:set>
<c:set var="userinfo" value="${viplist[1]}"></c:set>
</logic:iterate>
</logic:present>