mybatis多对多表查询(角色与用户)

发布时间 2023-08-31 09:31:53作者: Zzzz/

用户与角色表查询时,如果是靠两个表的主键查询是不正确的,就好比将a的值赋给b,b的值赋给a,需要中间表来作为中间值。利用中间值联系两个表之间的主键,多个角色也能实现联查。

但是要分清主表,既用户表为主表,即使根据角色查询,也不过是将查询id改为角色表id,但查询表还是user表

根据用户id查询:

因为添加了中间表,那么inner需要多加一张表,仍然是将role属性封装加入到user中(注意:多对多那么需要返回多个role,需要使用List封装role),在resultMap中添加<collection>标签封装属性字段。

 

根据角色id查询:

套路还是一样,但是这次是将user封装到role表中(因为根据role_id查询)那么流程就是在role主类中添加user属性,在roleMapper接口中 添加查询的方法,然后在对应xml中写下select语句,和上面没有什么不同,仅仅需要更改的是where查询的id由user_id变成了role_id。