首页 > 作文

MyBatis 实现多对多中间表插入数据

更新时间:2023-04-05 22:53:21 阅读: 评论:0

多对多中间表插入数据

在做这个员工管理系统demo的时候,由于ur和role是多对多关系,且ur主键是自增的,所有我们没办法提前知晓这个ur_id,所以插入的时候,就需要先插入ur,然后再找到刚插入的id拿出来,再插入中间表ur_role,这样才能将表关系对应起来,才能算一个完整的插入的过程。

所以现在的问题就是怎么知道这个ur_id,再怎么拿出来,再插入中间表ur_role。

方法

在mybatis中要用到inrt和update元素下的3个属性:

ugeneratedkeys (仅对 inrt 和 update 有用)这会令 mybatis 使用 jdbc 的 getgeneratedkeys 方法来取出由数据库内部生成的主键(比如:像 mysql 和 sql rver 这样的关系数据库管理系统的自动递增字段),默认值:fal。keyproperty (仅对 inrt 和 update 有用)唯一标记一个属性,mybatis 会通过 getgeneratedkeys 的返回值或者通过 inrt 语句的 新歌排行榜lectkey 子元素设置它的键值,默认:unt。如果希望得到多个生成的列,也可以是逗号分隔的属性名称列表。keycolumn (仅对 in土人高朝的救赎rt 和 update 有用)通过生成的键值设置表中的列名,这个设置仅在某些数据库(像 postgresql)是必须的,当主键列不是表中的第一列的时候需要设置。如果希望得到多个生成的列,也可以是逗号分隔的属性名称列表。

具体实现

1.插入ur表,可以看到我们并没有插入ur_id这个属性,因为是自增的。

2.重点是中间表ur_role ,可以看到,我们直接就使用ur下面的ur_id了,我们也没有做查询操作,所以我们并不知晓它的具体值。

3.test类,为了方便大家更好的理解,我们可以做一次右脸长痘痘是什么原因测试。

通过下面代码可以看到:我们在插入ur后,就能够把ur_id打印出来,再插入到中间表中,并没做其他诸如查询的操作。

结果:可以看到我们直接插入后,就能取得ur_id了,然后再插入中间表,这就解决了这个问题。

当然由于插入一个新的ur,必须同时满足ur和role的映射,所以这里使用spring transaction来保证这个插入过程的完整性。

使用注解方式实现。

多对多的关联表中,如何同时插入数据的学习心得

今天在写学校的实训项目时,遇到如下问题,一个实体类与另一个实体类是多对多的关系,且有个实体类中所存储的是另一个实体类的集合,所以在进行插入操作是,要同时向两张表中插入数据,现在已经得到解决办法。

student类:

tag表:

有如下需求,在插入学生时,学生会有很多的标签(tag),在投保加成页面传回数据是,用了一个taglist集合来接收,现在要将学生的信息插入到学生表中,然后将学生的标签放在另一张关联表中。

插入步骤

步骤一:

先插入学生信息:

2知道直径怎么算周长.插入关联表数据

结果测试

以上为个人经验,希望能给大家一个参考,也希望大家多多支持www.887551.com。

本文发布于:2023-04-05 22:53:20,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/f70ab007dd6a095604776ca54ff39dfc.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:MyBatis 实现多对多中间表插入数据.doc

本文 PDF 下载地址:MyBatis 实现多对多中间表插入数据.pdf

标签:可以看到   属性   数据   学生
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图