1 何为mybatis:
MyBatis 是一个持久层框架,它通过将数据库操作映射到 Java 方法,使得在 Java 应用程序中操作数据库变得更加简单和方便。当涉及到多表查询或多表操作时,MyBatis 提供了多种方式来进行多表映射
2 一对一映射:
就是在自己设置一个实体类 ,装对方的对象
当两个表之间存在一对一的关系时,可以使用 MyBatis 的一对一映射功能将查询结果映射到包含相关对象的 Java 对象中。这可以通过在映射文件中使用 <association>
元素来实现
代码实现:
以根据ID查询订单,以及订单关联的用户的信息为例
数据库准备
设置实例化包:
设置mapper接口,用于查询数据
配置文件:
通过映射用resultMap实现映射
其中 column为数据库中的字段id property为实体类中对应的字段
3对多查询:
封装对方类的集合
语句查询
4 多表映射优化
<setting name="autoMappingBehavior" value="FULL"/> 是 MyBatis 框架中的一个配置设置。MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。
这里的 autoMappingBehavior 设置是关于 MyBatis 如何自动映射结果集到 Java 对象(通常是实体类或者 DTO)的。它有三个可能的值:
NONE: 禁用自动映射。
PARTIAL: 只会自动映射没有手动指定映射的字段。也就是说,如果某个字段在 Java 对象中有明确的 getter/setter 或者在 MyBatis 的映射文件中有明确的 <result> 映射,那么这个字段就不会被自动映射。
FULL: 会自动映射所有字段,包括已经手动指定映射的字段。
设置为 FULL 时,MyBatis 会尝试将结果集中的所有列都映射到 Java 对象的对应字段,即使这些字段在映射文件中已经有了明确的 <result> 映射。
在setting中配置 这样在映射时只写id就行了