栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Mybatis实体类多对一的处理

Mybatis实体类多对一的处理

Mybatis实体类多对一的处理

多个学生对应一个老师
对于老师来说:关联多个学生, 集合
1.建表省略
注意主外键之间的关系
2.测试环境的搭建

导包mybatis核心配置文件mybatis工具类实体类的编写dao层接口的实现mapper配置文件的编写测试

3.导包



    4.0.0

    org.example
    mybatisA
    pom
    1.0-SNAPSHOT
    
        mybatis1
        mybatis2
        mybatis3
        mybatis4
        mybatis5
        mybatis6
    

    
        8
        8
    

    
        
            org.mybatis
            mybatis
            3.5.7
        
        
            mysql
            mysql-connector-java
            8.0.27
        
        
            org.projectlombok
            lombok
            1.18.12
        
        
            log4j
            log4j
            1.2.17
        
        
            junit
            junit
            4.12
            test
        
    

4.mybatis核心配置文件的编写




    
        
    
    
        
            
            
                
                
                
                
            
        
    
    
        
    

5.mybatis工具类的编写

package com.momo.utils;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.InputStream;

public class MybatisUtils {
    static SqlSessionFactory sqlSessionFactory;
    static {
        String path = "mybatis-config.xml";
        try {
            InputStream is = Resources.getResourceAsStream(path);
            SqlSessionFactoryBuilder ssfb = new SqlSessionFactoryBuilder();
            sqlSessionFactory = ssfb.build(is);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    public static SqlSession getSqlSession(){
        return sqlSessionFactory.openSession();
    }
}

6.实体类的编写

package com.momo.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Student {
    private int sid;
    private String name;
    private int age;
    private String sex;
    private Date birthday;
    private int tid;
}

package com.momo.entity;


import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;



@Data
@AllArgsConstructor
@NoArgsConstructor
public class Teacher {
    private int tid;
    private String name;
    private List students;
}

7.dao层接口的实现

package com.momo.dao;

import com.momo.entity.Teacher;

import java.util.List;

public interface TeacherMapper {

    //查询所有教师信息
    List findTeacherAll();
}

8.mapper配置文件的编写




    

    
        select t.tid,t.name,s.sid,s.name,s.age,s.sex,s.birthday from student s,teacher t where t.tid = s.tid;
    
    
        
        
        
            
            
            
            
            
        
    


    
        select * from student where tid = #{tid};
    

ofType为Java集合的泛型
javaType为对象的类型
9.测试

package com.momo.test;

import com.momo.dao.TeacherMapper;
import com.momo.entity.Teacher;
import com.momo.utils.MybatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.After;
import org.junit.Before;

import java.util.List;

public class Test {

    private SqlSession sqlSession;
    private TeacherMapper teacherMapper;

    @Before
    public void init(){
        sqlSession = MybatisUtils.getSqlSession();
        teacherMapper = sqlSession.getMapper(TeacherMapper.class);
    }

    @After
    public void close(){
        sqlSession.close();
    }


    @org.junit.Test
    public void test1(){
        List teacherAll =
                teacherMapper.findTeacherAll();
        teacherAll.forEach(System.out::println);
    }
}

注意:

复杂属性集合时在mapper配置文件要用collection来配置

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/722969.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号