多表复杂查询 mysql_一:用resultMap处理多表查询的复杂数据

提出问题:

假设查询一年级二班小明的成绩,这里只需要把学生stuid传入查询可以获得作业分数,但是需要一个作业对应一个分数(例如:语文作业:78;数学作业:56;英语作业:100),可以像下图现实的这样把展示出来,由于作业题目,作业描述在task表里,分数在stu_task表里。所以就出现了如何把俩个表里联系查到的结果集返回出来???

97b42e059d4e?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

1

解决问题:

数据库建表:

97b42e059d4e?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

2

97b42e059d4e?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

3

97b42e059d4e?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

4

PoJo类(由于篇幅原因这里只展示实体类中的字段):

Student {

Integer stuid;

String stuname;

String account;

String password;

Integer cid;

}

Task {

private Integer tkid;

private String title;

private String task_desc;

private Date publish_time;

}

Stu_task {

private Integer stu_tk;

private Integer tkid;

private Integer stuid;

private Integer grade;

private String file_path;

//Stu_task中外键tkid是Task中的对应的tkid

private Task task;

}

*注意这里:

1.数据库里需要在Stu_task建tkid外键来对应 Task的主键tkid

2.在Stu_task里需要封装Task的对象,这里的task对象是对应的。

在mapper.xml中,

select*from task,stu_task where stu_task.stuid= #{stuid} and stu_task.tkid= task.tkid;

这里就可以把这俩个表的信息联系起来并查询出来。查询结果:

97b42e059d4e?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

5

这里对resultMap进行解释:

resultMap可以将查询到的复杂数据(多表查询)映射到指定的结果集返回。

(column是表中列名,property是实体类属性。

多用于主键

表中的其他字段(或列))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值