Mybatis一对一、一对多的关联查询

您所在的位置:网站首页 mybatis一对一关联查询 Mybatis一对一、一对多的关联查询

Mybatis一对一、一对多的关联查询

2023-07-17 06:34| 来源: 网络整理| 查看: 265

1、MyBatis实现一对一有几种方式,怎么实现?

有联合查询和嵌套查询,联合查询是几个表联合查询,只查询一次, 通过在resultMap里面配置association节点配置一对一的类就可以完成;

嵌套查询是先查一个表,根据这个表里面的结果的 外键id,去再另外一个表里面查询数据,也是通过association配置,但另外一个表的查询通过select属性配置。

2、MyBatis实现一对多有几种方式,怎么实现?

有联合查询和嵌套查询。联合查询是几个表联合查询,只查询一次,通过在resultMap里面的collection节点配置一对多的类就可以完成;嵌套查询是先查一个表,根据这个表里面的 结果的外键id,去再另外一个表里面查询数据,也是通过配置collection,但另外一个表的查询通过select节点配置。 select * from class c,teacher t where c.teacher_id=t.t_id and c.c_id=#{id} select * from class c,teacher t,student s where c.teacher_id=t.t_id and c.c_id=s.class_id and c.c_id=#{id}

三表关联嵌套查询(示例一):

select s.id as id,s.name as name,s.create_time as create_time,s.update_time as update_time from t_question_menu_sort gs left join t_question_site_menu_sort s on gs.menu_id = s.id where gs.question_id=#{id,jdbcType=BIGINT} select from t_question_question_whole q left join t_user_data u on u.id = q.user_id where 1 = 1 and q.user_id = #{questionQuestionWhole.userId,jdbcType=BIGINT} and u.nickname like #{nickname,jdbcType=VARCHAR} and q.question_title like #{questionTitle,jdbcType=VARCHAR}

三表关联嵌套查询(示例二):

id, createtime, password, updatetime, username, available, email, tel, sex_type SELECT sys_resource.id as id, sys_resource.available as available, sys_resource.`name` as name , sys_resource.permission as permission, sys_resource.order_num as order_num, sys_resource.type as type, sys_resource.url as url, sys_resource.parent_id as parent_id FROM sys_role_resources LEFT JOIN sys_resource ON sys_role_resources.resources_id = sys_resource.id where sys_role_id = #{id,jdbcType=BIGINT} SELECT sys_role.id, sys_role.available, sys_role.description, sys_role.`name` FROM sys_user_roles LEFT JOIN sys_role ON sys_user_roles.roles_id = sys_role.id where sys_user_roles.sys_user_id = #{id,jdbcType=BIGINT}


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3