Mybatis里Collection和Association的区别和用法
程序员文章站
2024-02-19 16:45:40
...
级联查询的两个标签
在级联查询的时候我们常会见到两个标签
association和collection
分别是处理哪种关系的呢?
association:处理一对一、多对一
collection:处理一对多
- 一对一:一个人对应一个身份证号码
- 一对多:一个班级对应多个学生
- 多对一:多个员工对应一个公司
一对一
xml
<select id="findNameById" resultType="java.lang.String">
SELECT username from t_account where id = #{id}
</select>
一对多
xml
<select id="findById" parameterType="long" resultType="com.a.entity.Student">
select s.id ,
s.name ,
cl.id as cid,
cl.name as cname
FROM
student s, classes cl
WHERE
s.id = #{id}
and s.cid = cl.id
</select>
- 通过学生id查班级,用到了association标签
<resultMap id="calssesMap" type="com.a.entity.Student">
<id column="id" property="id"></id>
<result column="name" property="name"></result>
<association property="classes" javaType="com.a.entity.Classes">
<id column="cid" property="id"></id>
<result column="cname" property="name"></result>
</association>
</resultMap>
- 通过班级id查学生,用到了collection标签
<resultMap id="calssesMap" type="com.a.entity.Classes">
<id column="id" property="id"></id>
<result column="name" property="name"></result>
<collection property="students" ofType="com.a.entity.Student">
<id column="id" property="id"/>
<result column="name" property="name"/>
</collection>
</resultMap>
上一篇: PlantUML
下一篇: Golang将Map的键值对调的实现示例
推荐阅读
-
Mybatis里Collection和Association的区别和用法
-
php i++和++i的用法区别_PHP教程
-
php中str_replace跟str_ireplace的用法和区别
-
关于Sequelize连接查询时inlude中model和association的区别详解
-
PHP中magic_quotes_gpc跟magic_quotes_runtime的区别、作用和用法
-
php中get_cfg_var()和ini_get()的用法及区别_PHP
-
php中str_replace跟str_ireplace的用法和区别
-
Mybatis的mapper文件中$和#的用法及区别详解
-
JavaScript ES6中export、import与export default的用法和区别
-
MySql里的IFNULL、NULLIF和ISNULL用法_MySQL