两个类对应的数据表在后台怎么放在一个list里面传到前台jsp并能对应取出,对应对应对应重要事情说三遍?

如图我想获得一张表的voteCnt的同时获得对应另外一张表的name,message,headimg!... 如图我想获得一张表的voteCnt的同时获得对应另外一张表的name,message,headimg! 展开
 我来答
Ic_wolf
2016-06-17
知道答主
回答量:16
采纳率:0%
帮助的人:10.8万
展开全部

使用关联查询或多表查询,不过你的主次标及关联条件没说出来,应该是 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>
更多追问追答
追问

现在的问题是这两个表对应两个类,按你的查询方式我该怎么封装放入list里面呢,我这种方式应该就行不通了


;;;;

我用的是jdbc,关联关系是wxId + actId + scheduleId 。

追答

如果使用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框架实现也应该大同小异

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式