mybatis标签collection一对多的使用 一、colleciton 标签二、collection使用方法1. 方法一: 嵌套结果映射2. 方法二: 嵌套select 查询 三、
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;} 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; <!-- 定义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> <!-- 定义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> association 一对一: https://blog.csdn.net/qq825478739/article/details/127357796
来源地址:https://blog.csdn.net/qq825478739/article/details/127357819
--结束END--
本文标题: Mybatis | Mybatis标签collection一对多的使用
本文链接: https://www.lsjlt.com/news/395984.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-10-23
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0