Java全栈课程之Mybatis详解——一对多处理

例如:一个老师拥有多个学生,对于老师而言,就是一对多的关系

一、测试环境搭建

        1.导入Lombok

        
            org.projectlombok
            lombok
            1.18.10
        

        2.新建实体类Teacher,Student

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

        3.建立Mapper接口

public interface StudentMapper {
}
public interface TeacherMapper {
    //获取老师
    List getTeacher();
}

        4.建立Mapper.XML文件








    

        5.在核心配置文件中绑定注册接口或文件

    
        
        
    

        6.测试查询是否能成功

    @Test
    public void getTeacher(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        TeacherMapper mapper = sqlSession.getMapper(TeacherMapper.class);
        List list = mapper.getTeacher();
        for (Teacher teacher : list) {
            System.out.println(teacher);
        }
        sqlSession.close();
    }

二、按照查询嵌套处理

获取指定老师下的所有学生及老师的信息

    
    
        
    
    

三、按照结果嵌套处理

获取指定老师下的所有学生及老师的信息

    
    
        
        
        
        
            
            
            
        
    

四、小结

        1.关联 association 【多对一】

        2.集合 collection【一对多】

        3.javaType和ofType

                ① javaType 用来指定实体类中属性的类型

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

注意点:

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

        2.注意一对多和多对一中属性名和字段问题

        3.如果问题不好排查,可以用日志

你可能感兴趣的:(Java全栈开发,java,mybatis,开发语言)