首页 > 其他分享 >mybatis多对多表查询(角色与用户)

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

时间:2023-08-31 09:33:23浏览次数:34  
标签:多表 角色 查询 role user mybatis 封装 id

用户与角色表查询时,如果是靠两个表的主键查询是不正确的,就好比将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。

 

 

标签:多表,角色,查询,role,user,mybatis,封装,id
From: https://www.cnblogs.com/zz999zhl/p/17668754.html

相关文章

  • 关于分页查询数据重复的问题 (分页查看时数据库插入导致) 的一个解决办法
    既然是在我分页的过程中,插入了一条记录,导致我再查询下一页的时候,查出来上一页的记录,那么,我思考,我可不可以不去查询他新增的这一条记录。那么这样,就查询不到别人新增的这条记录了。那么需要的条件就出来了:数据库表要有创建时间的这么一个字段那么解决思路就出来了,首先是要前端进行......
  • 6-6 Oracle表复杂查询 -合并查询-增删改数据
    Oracle基础知识整理:C站下载链接1Oracle基础知识2Oracle安装(附详细安装操作手册)3Oracle基本使用4Oracle用户管理6-1Oracle表的管理-创建修改表6-2Oracle表的管理-表查询6-3Oracle表的管理-表复杂查询6-4Oracle表复杂查询-多表查询6-5Oracle表复杂查询-子查询文章......
  • mysql学习教程篇(二)——基础查询和条件查询
    1.基础查询#进阶1:基础查询/*语法:select查询列表from表名;类似于:System.out.println(打印东西);特点:1、查询列表可以是:表中的字段、常量值、表达式、函数2、查询的结果是一个虚拟的表格*/USEmyemployees;#1.查询表中的单个字段SELECTlast_nameFROMemploy......
  • mybatis --ps
    1.加日志:mybatis-plus: configuration:  log-impl:org.apache.ibatis.logging.stdout.StdOutImpl2.basemapperselectlist,selectbymap,3.mysql版本大于8需要加时区4自定义sql时有一个默认的路径5.iservice的保存和修改当id为空时为保存,不为空时是修改 ......
  • Mybatis Plus报错: can not find lambda cache...
    使用mybatisplus时使用Lambda表达式做查询条件会遇到mybatis拿不到缓存问题:错误1:com.baomidou.mybatisplus.core.exceptions.MybatisPlusException:cannotfindlambdacacheforthisentity错误2:cannotfindlambdacacheforthisproperty[XXX]ofentity[com.XXX.X......
  • mybatis时间字段存入mysql数据库时间差一秒的问题
    环境:springbootmybatisplusentryimportjava.util.Date;/***促销开始时间*/ @JsonFormat( pattern="yyyy-MM-ddHH:mm:ss" )@ApiModelProperty(value="促销开始时间")privateDatestartTime;/***促销结束时间......
  • thinkphp5 日期+group by + 分页paginate查询
    <?php//根据日期来统计所消耗的点数//模型的使用方法$result=$model->field("id,FROM_UNIXTIME(createtime,'%Y-%m-%d')as`createtime`,sum(price)ascount_price")->group("FROM_UNIXTIME(createtime,'%Y-%m-%d'),store......
  • 查询col1列重复值所在行
    df_test=pd.DataFrame({'col1':['A']*2+['B'],'col2':range(3)})#查询col1列重复值所在行df_test.col1.duplicated()#首次出现不算重复df_test.query("col1.duplicated()")#只能筛选出非首次出现的重复值所在行#方法一df_test.duplicated(sub......
  • Mybatis - useGeneratedKeys 和 keyProperty,获取插入主键自动生成的 Id
    <insertid="insertOrder"parameterType="com.buchstadt.params.PayForData"useGeneratedKeys="true"keyProperty="id">INSERTINTOorders(user_id,total,location,holder_phone,holder_name)VALUES......
  • 查询lob对象的表和字段
    colownerformata20colobject_idformat99999999colobject_nameformata30colobject_typeformata30colcolumn_nameformata30coltable_nameformata30setlinesize170selecto.owner,o.object_id,o.object_name,o.object_type,l.table_name,l.colum......