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无法赋值,取得的值为空,想请救高人,该如何才能做到呢? 展开
数据库: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无法赋值,取得的值为空,想请救高人,该如何才能做到呢? 展开
3个回答
展开全部
可以的。。不需要加引号了。。
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
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
展开全部
有很多方式,比如你可以把这个实体类的属性改为你把需要的所有字段(包括多表的字段,也就是你的联合查询里的字段);还可以一个表一个实体,在父实体里声明一个子实体的属性,这样你在查询数据时就可以直接为父实体赋值了,对于关联的数据就只是这个实体的一个属性而已,只不过这个属性也是一个实体。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
请用CASE WHEN 语句 。如果不行的话,写存储过程吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询