文档参考地址:mybatis – MyBatis 3 | 入门文档
<!-- 导入数据源信息-->
<properties resource="database.properties"/>
参考文章:
MyBatis之association和collection标签_mybatis collection-CSDN博客
<association> 标签实现一对一关联查询(级联查询)
<association>
标签标签作用
用于处理关联关系,可以将多个表中的数据映射到单个Java对象中,主要用于一对一的情况。
标签常用属性
属性 | 描述 |
---|---|
property |
属性名:映射实体类属性名 |
column |
映射数据库字段名 |
javaType |
属性类型:映射java类型 |
jdbcType |
映射数据库类型 |
select |
用于加载复杂类型属性的映射语句的ID(它会从column 属性指定的列中检索数据,作为参数传递给目标 select 语句。) |
resultMap |
不使用嵌套模式,而是将此关联的嵌套结果集映射到一个外部的标签中,然后通过 id 进行引入。 |
columnPrefix |
给关联的数据库中的 column 添加一个前缀(如果不添加前缀,当 两个表同时有 id 字段,查询结果时一定会产生覆盖,使得两个 id 的值一样) |
fetchType |
延迟加载,lazy打开延迟加载,eager积极加载。指定属性后,将在映射中忽略全局配置参数lazyLoadingEnabled,使用属性的值。 |
使用方式 | 推荐方式二
方式一 关联查询
通过使用多表联合查询语句来获取数据,用一个方法获取想要的结果。
<!-- 定义封装account和user的resultMap -->
<resultMap id="标签的id既名字,可随意" type="查询的主表对应的实体类路径(如:cn.hdc.User)">
<id property="实体类中表示主键的名称" column="数据库表主键名称"></id>
<result property="实体类属性" column="数据库表列名"></result>
<result property="实体类属性" column="数据库表列名"></result>
<!-- 一对一的关系映射,配置封装user的内容 -->
<association property="实体类属性(另一张表的对象)"
javaType="另一张表对应的实体类路径">
<!-- 说明封装的实体类对象 -->
<id property="主键对应的实体类属性" column="主键名称"></id>
<result property="实体类属性" column="数据库表列名"/>
<result property="实体类属性" column="数据库表列名"/>
</association>
</resultMap>