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

用resultMap,多表查询,返回值设置(参考博客https://blog.csdn.net/qq_42780864/article/details/81429114)

提出问题:

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

一:用resultMap处理多表查询的复杂数据_第1张图片
1

解决问题:

         数据库建表:

一:用resultMap处理多表查询的复杂数据_第2张图片
2
一:用resultMap处理多表查询的复杂数据_第3张图片
3
一:用resultMap处理多表查询的复杂数据_第4张图片
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;

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

一:用resultMap处理多表查询的复杂数据_第5张图片
5

这里对resultMap进行解释:

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

  

  

        

  

    

    

  

    

  

  

    

      

  

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

    多用于主键

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

你可能感兴趣的:(一:用resultMap处理多表查询的复杂数据)