博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
resultMap之collection聚集
阅读量:5942 次
发布时间:2019-06-19

本文共 2114 字,大约阅读时间需要 7 分钟。

 

 

 

聚集元素用来处理“一对多”的关系。需要指定映射的Java实体类的属性,属性的javaType(一般为ArrayList);列表中对象的类型ofType(Java实体类);对应的数据库表的列名称;

不同情况需要告诉MyBatis 如何加载一个聚集。MyBatis 可以用两种方式加载:
1. select: 执行一个其它映射的SQL 语句返回一个Java实体类型。较灵活但会将执行多次嵌套的SQL语句。
2. resultMap: 使用一个嵌套的结果映射来处理通过join查询结果集,映射成Java实体类型。

两种加载方式格式如下:

1.集合的嵌套查询(select)

<collection property="Java属性名" ofType="另一Java类名" javaType="ArrayList" column="关联主键ID(用于嵌套查询SQL语句传入参数,多个用逗号分开)" select="另一个select映射SQL的ID"/>

<select parameterType="int" resultType="另一Java类名" id="另一个select映射SQL的ID">

SQL语句

<select>

注意:column属性的值必须与相应的SQL查询语句中的列名相同。MyBatis会将第一条SQL语句查询出来的该列的值用于所嵌套的SQL映射语句的入参。因第一条SQL语句查询出来的每个该列的值都将用于执行另一个SQL语句,所以嵌套的SQL语句将被多次执行。

2.集合的嵌套结果(resultMap)

<collection property="Java属性名" ofType="另一Java类名" javaType="ArrayList" resultMap="另一个resultMap的ID"/>

<resultMap="另一个resultMap的ID" type="另一Java类名">

<id property="id" column="关联主键ID"/>

........

</resultMap>

注意:column属性的值必须与相应的SQL查询语句的列名一样。

集合的嵌套查询(select)示例:

 

 

 

 

 

 

集合的嵌套结果(result)示例:

 

 

 

 

如果你只是简单的嵌套,可以像id="userdetailResultNew" 那样将要嵌套的结果直接写在collection子元素中去。

 

转载地址:http://bgqtx.baihongyu.com/

你可能感兴趣的文章
javascript,继承,封装
查看>>
scala入门--快学scala第一章练习题
查看>>
RHCS集群理论暨 最佳实践
查看>>
phpstrom快捷键
查看>>
shell脚本中echo显示内容带颜色
查看>>
浏览器缓存
查看>>
POI导入大excel文件
查看>>
我的友情链接
查看>>
安装R语言开发环境RStudio服务器版
查看>>
不忘初心,努力做最好的自己
查看>>
走在浪潮尖端——为什么选择云计算
查看>>
重启nagios有异常提示Starting nagios:This account is currently not available
查看>>
全面、经典视频教程(php、java、jsp、ajax、linux...)
查看>>
Windows 7/Windows 8都有上帝模式
查看>>
华为云计算FusionCompute环境部署实验之使用批量部署工具安装
查看>>
静态路由的配置实验
查看>>
linux for循环
查看>>
关卡CyclicBarrier的使用
查看>>
用好这6个新功能,让你的项目设计事半功倍
查看>>
第一篇,试试功能如何
查看>>