Mybatis一对一和一对多还有多对多

1.Mybatis 多表操作

1.1 一对一

多表模型分类

  • 一对一:在任意一方建立外键,关联对方的主键。
  • 一对多:在多的一方建立外键,关联一的一方的主键。
  • 多对多:借助中间表,中间表至少两个字段,分别关联两张表的主键。
    一对一
一对一
- <resultMap>:配置字段和对象属性的映射关系标签。
			id 属性:唯一标识
			type 属性:实体对象类型
- <id>:配置主键映射关系标签。
- <result>:配置非主键映射关系标签。
			column 属性:表中字段名称
			property 属性: 实体对象变量名称
- <association>:配置被包含对象的映射关系标签。
			property 属性:被包含对象的变量名
			javaType 属性:被包含对象的数据类型

在这里插入图片描述
核心配置文件
在这里插入图片描述
映射配置文件
在这里插入图片描述
接口
在这里插入图片描述
测试类中执行

 public void selectAll() throws Exception{
        //1.加载核心配置文件
        InputStream is = Resources.getResourceAsStream("MyBatisConfig.xml");
        //2.获取SqlSession工厂对象
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
        //3.通过工厂对象获取SqlSession对象
        SqlSession sqlSession = sqlSessionFactory.openSession(true);
        //4.获取OneToOneMapper接口的实现类对象
        OneToOneMapper mapper = sqlSession.getMapper(OneToOneMapper.class);
        //5.调用实现类的方法,接收结果
        List<Card> list = mapper.selectAll();
        //6.处理结果
        for (Card c : list) {
            System.out.println(c);
        }
        //7.释放资源
        sqlSession.close();
        is.close();
    }

一对一的查询进行实现
总的来说就是在
在这里插入图片描述
在对应表的类中添加关联的类
最后的查询结果中有两张表
在这里插入图片描述
在映射配置中对结果进行对应的赋值,查询出来的表格后三列就对其进行封装成person类
在这里插入图片描述
在Card类中定义person类的变量P待会进行封装
在这里插入图片描述
最后执行结果
在这里插入图片描述
一对一的实现就完成了

一对多的使用

一对多和一对一也差不多
是一张表的一个列对应另一张表的多个列
过程也是用类的封装进行操作

  • 一对多最后执行结果的展示
    在这里插入图片描述

多对多的使用

接口对学生对象进行封装
在这里插入图片描述
三表关系
在这里插入图片描述

多表操作的小结

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值