jsp+javabean+servlet的多表查询出的resultset结果集(含有复杂的sql语句查询的结果)封装到一个实体类中? 50

用的是jsp+javabean+servlet数据库:mysql数据表:学生信息表student字段(sid,sname),科目表course字段(cid,cname),... 用的是jsp+javabean+servlet
数据库:mysql
数据表:学生信息表student 字段(sid,sname),科目表course 字段(cid,cname),
成绩表chengji字段(id,sid,cid,score)
实体类:Student(sid,sname) Course(cid,cname) ChengJi(id,private Student student,private Course course,score)
现在我想要查询的效果如下图,

查询的sql语句:select s.sid,s.sname,
sum(case c.cname when '语文' then score else 0 end) 'yuwen',
sum(case c.cname when '数学' then score else 0 end) 'shuxue',
from chengji j,student s,course c where s.sid=j.sid and c.cid=j.cid group by s.sid,s.sname
现在我不懂如何把这个多表查询的结果集赋给一个实体,是要再创建一个实体吗?我建了一个查询成绩的实体Marks(sid,sname,yuwen,shuxue),结果是sid和sname都可以set进去并取得值在页面显示也没有问题,但是yuwen和shuxue无法赋值,取得的值为空,想请救高人,该如何才能做到呢?
展开
 我来答
lovemogely
2011-02-15
知道答主
回答量:32
采纳率:0%
帮助的人:14.5万
展开全部
可以的。。不需要加引号了。。
sum(case c.cname when '语文' then score else 0 end) yuwen,
sum(case c.cname when '数学' then score else 0 end) shuxue
然后result.getString("yuwen");就可以了,我就是这样写的。
如果case 不行就用decode吧,
sum(decode(c.cname ,'数学',0) yuwen,
sum(decode(c.cname ,'语文',0) shuxue
chunweiai
2011-02-17 · TA获得超过107个赞
知道答主
回答量:112
采纳率:0%
帮助的人:48.5万
展开全部
有很多方式,比如你可以把这个实体类的属性改为你把需要的所有字段(包括多表的字段,也就是你的联合查询里的字段);还可以一个表一个实体,在父实体里声明一个子实体的属性,这样你在查询数据时就可以直接为父实体赋值了,对于关联的数据就只是这个实体的一个属性而已,只不过这个属性也是一个实体。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kejiaweiren
2011-02-15 · TA获得超过6740个赞
知道大有可为答主
回答量:1774
采纳率:0%
帮助的人:3351万
展开全部
请用CASE WHEN 语句 。如果不行的话,写存储过程吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式