> 文档中心 > MyBatis -----结果集映射(二)

MyBatis -----结果集映射(二)


结果集映射

                         select * from user where id = #{id};    

多对一   关联 - association - JavaType

Student表

@Data@AllArgsConstructor@NoArgsConstructorpublic class Student {    private int id;    private String name;    private Teacher teacher;}

Teacher表

@Data@AllArgsConstructor@NoArgsConstructorpublic class Teacher {    private int id;    private String name;}

按照结果嵌套处理 【推荐

                                      select s.id ,s.name ,t.name , t.id     from student s, teacher t     where s.tid = t.id    

按照查询嵌套处理

        <!-- -->   <!-- -->          select * from student;         select * from teacher  where id = #{tid};    

一对多  集合 - collection - ofType

Student表

@Datapublic class Student {    private int id;    private String name;    private int tid;}

Teacher表

@Datapublic class Teacher {    private int id;    private String name;    //一个老师拥有多个学生    private List students;}

按照结果嵌套处理 【推荐

                                   select s.id sid, s.name sname, t.name tname,t.id tid from student s,teacher t where s.tid = t.id and t.id = #{tid}    

按照查询嵌套处理

     select * from mybatis.teacher where id = #{tid}        select * from mybatis.student where tid = #{tid}

小结

  1. 关联 - association 【多对一】 JavaType

  2. 集合 - collection 【一对多】 ofType

  3. javaType & ofType

    1. JavaType 用来指定实体类中属性的类型

    2. ofType 用来指定映射到List或者集合中的 pojo类型,泛型中的约束类型!

注意点:

  • 保证SQL的可读性,尽量保证通俗易懂

  • 注意一对多和多对一中,属性名和字段的问题

  • 如果问题不好排查错误,可以使用日志 , 建议使用 Log4j