栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

mybatis一对多,多对一的代码实现(一步步添加代码实现)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

mybatis一对多,多对一的代码实现(一步步添加代码实现)

想实现调试请先搭一个Mybatis连MySQL数据库的环境
附个我的GitHub链接(可能经常有改动,慎用):https://github.com/Frank520lang/mybatis_liang.git

Navicat新建teacher和student两张数据表:

CREATE TABLE `teacher`
(
    `id`   INT(10) NOT NULL,
    `name` VARCHAR(30) DEFAULT NULL,
    PRIMARY KEY (`id`)
) ENGINE = INNODB
  DEFAULT CHARSET = utf8;

INSERT INTO teacher(`id`, `name`)
VALUES (1, '秦老师');

CREATE TABLE `student`
(
    `id`   INT(10) NOT NULL,
    `name` VARCHAR(30) DEFAULT NULL,
    `tid`  INT(10)     DEFAULT NULL,
    PRIMARY KEY (`id`),
    KEY `fktid` (`tid`),
    CONSTRAINT `fktid` FOREIGN KEY (`tid`) REFERENCES `teacher` (`id`)
) ENGINE = INNODB
  DEFAULT CHARSET = utf8;

INSERT INTO `student` (`id`, `name`, `tid`)
VALUES (1, '小明', 1);
INSERT INTO `student` (`id`, `name`, `tid`)
VALUES (2, '小红', 1);
INSERT INTO `student` (`id`, `name`, `tid`)
VALUES (3, '小张', 1);
INSERT INTO `student` (`id`, `name`, `tid`)
VALUES (4, '小李', 1);
INSERT INTO `student` (`id`, `name`, `tid`)
VALUES (5, '小王', 1);

对应的student表:

对应的teacher表:

一对多的实现:

对应的实体类:Student.class:

@Data
public class Student {
    private Integer id;
    private String name;
    //一对多
    private Integer tid;
}

对应的实体类:Teacher.class

@Data
public class Teacher {
    private Integer id;
    private String name;
    //一对多
    private List students;
}

对应的Mapper接口:TeacherMapper.java

public interface TeacherMapper extends baseMapper {
    //一对多(集合)
    public List manyToOne();
}

对应的mapper.xml文件:teacher.xml




    
        select s.id sid,s.name sname,s.tid sid,t.id tid,t.name tname from student s,teacher t;
    
    
        
        


        



        
    

    
        
        
        
    

测试类:

public class StudentMapperTest {
    @Resource
    private StudentMapper studentMapper;
    @Resource
    private TeacherMapper teacherMapper;
    @Test
    public void testOneToMany(){

        List teachers =teacherMapper.manyToOne();
        System.out.println("----------------------------");
        System.out.println("----------------------------");
        System.out.println("----------------------------");
        System.out.println(teachers.get(1));
        System.out.println("----------------------------");
        System.out.println("----------------------------");
        System.out.println("----------------------------");
        for (Teacher teacher : teachers) {
            System.out.println(teacher);
        }
        System.out.println("----------------------------");
        System.out.println("----------------------------");
        System.out.println("----------------------------");
    }
}

单元测试结果:

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

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

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