java 修改多表_MyBatis 多表操作的实现

1.1 一对一查询

1.1.1 概述

关系数据库中第一个表中的单个行只可以与第二个表中的一个行相关,且第二个表中的一个行也只可以与第一个表中的一个行相关。

4f559c1a65300d3953085006a475d486.png

1.1.2 创建实体类

public class Student {

private Integer id;

private String name;

private Boolean age;

private String sex;

private StudentStatus studentStatus;

// set and get

}

public class StudentStatus {

private Integer id;

private String num;

private String major;

// set and get

}

1.1.3 创建 DAO 接口

public class StudentStatus {

private Integer id;

private String num;

private String major;

// set and get

}

1.1.4 结果映射

resultMap 元素是 MyBatis 中最重要最强大的元素。它可以从 90% 的 JDBC ResultSets 数据提取代码中解放出来,并在一些情形下允许进行一些 JDBC 不支持的操作。实际上,在为一些比如连接的复杂语句编写映射代码的时候,一份 resultMap 能够代替实现同等功能的长达数千行的代码。resultMap 的设计思想是,对于简单的语句根本不需要配置显式的结果映射,而对于复杂一点的语句只需要描述它们的关系就行了。之前已经使用过简单映射语句了,但并没有显式指定 resultMap。只是简单的使用 resultType 将所有的列映射到对象的属性上,需要注意的是列名与属性名一致才能映射,解决列名不匹配还是需要使用 resultMap。

select user_id, user_name, hashed_password from some_table where id = #{id}

1.1.5 配置 mapper

select * from student s, student_status st where s.st_id = st.st_id

上面这种配置会将自动将列名一致的映射到 type 指定的实体类中,该实体类中属性类型为对象的则需要单独拿出来映射。还可以使用 association 进行复杂

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值