我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Mybatis | Mybatis标签collection一对多的使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Mybatis | Mybatis标签collection一对多的使用

Mybatis标签collection一对多的使用

Mybatis的 collection 是一对多的使用的, 在 resultMap 标签内使用
当一个Bean中有 一个list属性需要关联查询出来的使用就用collection 标签
如下
查询用户结果 需要关联出 角色集合


用户

@Datapublic class User {        private Integer id;        private String name;        private List<Role> roles;}

角色

@Datapublic class Role {    private Integer id;    private Integer userId;    private String name;    private String type;}

sql

CREATE TABLE `user` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `name` varchar(255) DEFAULT NULL COMMENT '名称',  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4;CREATE TABLE `role` (  `id` int(11) NOT NULL AUTO_INCREMENT,`user_id` int(11) NOT NULL COMMENT '用户id',  `name` varchar(255) DEFAULT NULL COMMENT '角色名称',`type` varchar(255) DEFAULT NULL COMMENT '角色类型',  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4;

1. 方法一: 嵌套结果映射

    <!-- 定义resultMap -->    <resultMap id="UserResultMap" type="User">        <result column="id" property="id"/>        <result column="name" property="name"/>        <collection ofType="role" property="roles">            <result column="role_id" property="id"/>            <result column="role_name" property="name"/>            <result column="role_type" property="type"/>        </collection>    </resultMap>    <!--查询语句-->    <select id="selectUserById" resultMap="UserResultMap">        select u.id ,u.name,r.id AS role_id ,r.name AS role_name ,r.type AS role_type FROM user AS u INNER JOIN role AS r ON u.id = r.user_id where u.id = #{id}    </select>

2. 方法二: 嵌套select 查询

    <!-- 定义resultMap -->    <resultMap id="UserResultMap" type="User">        <result column="id" property="id"/>        <result column="name" property="name"/>        <collection ofType="role" property="roles" column="id" select="selectRoleByUserId"/>    </resultMap>     <!--查询语句-->    <select id="selectUserById" resultMap="UserResultMap">        select  id , name FROM user where id = #{id}    </select>    <!--查询语句-->    <select id="selectRoleByUserId" resultMap="role">        select  id , name,type FROM role where user_id = #{userId}    </select>
  • select=“selectRoleByUserId” 找的是第二个sql语句,如果调用别的xml文件中方法写全路径就可以找到.
  • column=“id” 参数id 传多个参数的话就是 {“属性名”=“参数”,“属性名”=“参数”} 这样的.

association 一对一: https://blog.csdn.net/qq825478739/article/details/127357796

来源地址:https://blog.csdn.net/qq825478739/article/details/127357819

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Mybatis | Mybatis标签collection一对多的使用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MyBatis之ResultMap的Association和Collection标签详解

我们希望每个数据库都具备良好的第三范式或 BCNF 范式,可惜它们并不都是那样。如果能有一种数据库映射模式,完美适配所有的应用程序,那就太好了,但可惜也没有。而 ResultMap 就是 MyBatis 对这个问题的答案。

Mybatis怎么解决collection一对多问题

这篇文章主要介绍了Mybatis怎么解决collection一对多问题的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Mybatis怎么解决collection一对多问题文章都会有所收获,下面我们一起来看看吧。先
2023-07-05

MyBatis中的ResultMap的association和collection标签详解

这篇文章主要介绍了MyBatis中的ResultMap的association和collection标签详解,主要包括association标签常用参数及id&result标签参数详解,本文给大家介绍的非常详细,需要的朋友可以参考下
2022-11-13

MyBatis中的collection如何使用

今天小编给大家分享一下MyBatis中的collection如何使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。colle
2023-07-02

Mybatis的where标签如何使用

这篇文章主要讲解了“Mybatis的where标签如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Mybatis的where标签如何使用”吧!原始的手动拼接在不使用Mybatis的wh
2023-06-30

mybatis的where标签怎么使用

本篇内容主要讲解“mybatis的where标签怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mybatis的where标签怎么使用”吧!我们经常在动态构造sql时,为防止注入或防止语句
2023-06-29

MyBatis动态<if>标签的使用

本文主要介绍了MyBatis动态<if>标签的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-05-19

怎么使用MyBatis的动态SQL标签

MyBatis的动态SQL标签可以帮助我们在SQL语句中根据条件来动态生成不同的SQL片段,从而实现更灵活的查询。下面是一些MyBatis动态SQL标签的使用示例:if标签:根据条件判断来生成SQL片段