两个类对应的数据表在后台怎么放在一个list里面传到前台jsp并能对应取出,对应对应对应重要事情说三遍?
如图我想获得一张表的voteCnt的同时获得对应另外一张表的name,message,headimg!...
如图我想获得一张表的voteCnt的同时获得对应另外一张表的name,message,headimg!
展开
1个回答
展开全部
使用关联查询或多表查询,不过你的主次标及关联条件没说出来,应该是 wxId + actId + scheduleId 。如果直接用JDBC SQL :
select vote.voteCnt, user.name, user.message. user.headimg from table1 as vote left join table2 as user on vote.wxId=user.wxId and vote.actId=user.actId where xxxx limit 0,10
JSP 中普通方式普通方式读取就好了:
<c:forEach items="${voteList}" var="vote">
${vote.name}获得了${vote.voteCnt}票<br/>
</c:forEach>
如果用了JPA、Hibernate等ORM工具,那么需要在Bean中设置级联,JSP中使用层次表达,只要不是是懒加载模式可以直接用:
<c:forEach items="${voteList}" var="vote">
${vote.user.name}获得了${vote.voteCnt}票<br/>
</c:forEach>
更多追问追答
追答
如果使用JdbcTemplate的话可以查看API:queryForList(String sql, Object[] args, Class elementType) Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, expecting a result list.
只要SQL返回类型和名称和你的VoteUser相对应就会自动映射的,案例是这样:
@SuppressWarnings("unchecked")
public List<VoteUser> getRankList(int actId, xxx,xxx) {
return (List<VoteUser>) jdbcTemplate.queryForList("select vote.voteCnt, user.name, user.message. user.headimg from table1 as vote left join table2 as user on vote.wxId=user.wxId and vote.actId=user.actId where xxxx limit 0,10",
new Object[]{actId,xxx,xxx},
VoteUser.class);
}
如果是你们自己实现的JDBC框架实现也应该大同小异
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询