提出问题:
假设查询一年级二班小明的成绩,这里只需要把学生stuid传入查询可以获得作业分数,但是需要一个作业对应一个分数(例如:语文作业:78;数学作业:56;英语作业:100),可以像下图现实的这样把展示出来,由于作业题目,作业描述在task表里,分数在stu_task表里。所以就出现了如何把俩个表里联系查到的结果集返回出来???
1
解决问题:
数据库建表:
2
3
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;
这里就可以把这俩个表的信息联系起来并查询出来。查询结果:
5
这里对resultMap进行解释:
resultMap可以将查询到的复杂数据(多表查询)映射到指定的结果集返回。
(column是表中列名,property是实体类属性。
多用于主键
表中的其他字段(或列))