Mybatis---关联查询

目录

一、一对一关联查询

(1)持久层接口方法

(2)映射文件

(3)测试方法

二、一对多关联查询

(1)持久层接口方法

(2)映射文件

(3)测试方法

三、多对多查询

(1)持久层接口方法

(2)映射文件

(3)测试方法


一、一对一关联查询

(1)持久层接口方法

public interface StudentMapper {
    List findAll();
}

(2)映射文件




   
      
      
      
      
         
         
      
   
   

(3)测试方法

 @Test
    public void yiduiyiTest() throws Exception{
        InputStream is= Resources.getResourceAsStream("SqlMapConfig.xml");
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder();
        SqlSessionFactory sqlSessionFactory=sqlSessionFactoryBuilder.build(is);
        SqlSession session=sqlSessionFactory.openSession();
        StudentMapper studentMapper=session.getMapper(StudentMapper.class);
        List studentList=studentMapper.findAll();
        studentList.forEach(System.out::println);
        session.commit();
        session.close();
        is.close();
    }

二、一对多关联查询

查询班级时,将关联的学生也查出来,这就是一对多关联查询

(1)持久层接口方法

public interface StudentMapper {
    //查询班级,关联查询出学生
    List findClassesAll();
}

(2)映射文件

   
      
      

      
         
         
         
      
    
 

(3)测试方法

@Test
    public void YiDuiDuoTest() throws Exception {
        InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
        SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
        SqlSession session = sqlSessionFactory.openSession();
        StudentMapper studentMapper = session.getMapper(StudentMapper.class);
        List classes=studentMapper.findClassesAll();
        classes.forEach(System.out::println);
        session.commit();
        session.close();
        is.close();
    }

三、多对多查询

多对多关联查询实际上就是两个一对多查询。

比如说:

一个老师对应多个班级,也就是说老师类中有一个班级集合属性

一个班级对应多个老师,也就是班级类中有一个老师集合属性

(1)持久层接口方法

 查询老师时,会将关联的班级也查询出来。

public interface TeacherMapper {
    List findTeacherAll();
}

(2)映射文件

    
        
        
        
            
            
        
    
    

(3)测试方法

    @Test
    public void Test1() throws Exception {
        InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
        SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
        SqlSession session = sqlSessionFactory.openSession();
        TeacherMapper teacherMapper=session.getMapper(TeacherMapper.class);
        List teachers=teacherMapper.findTeacherAll();
        teachers.forEach(System.out::println);
        session.commit();
        session.close();
        is.close();
    }

你可能感兴趣的:(Mybatis,mybatis,数据库)