mybatis做insert *** 作的时候 怎么才能返回插入的那条数据的id

mybatis做insert *** 作的时候 怎么才能返回插入的那条数据的id,第1张

设置一个实体类,有一个成员变量,idinsert标签里有一个属性useGeneratedKeys="true";然后插入。调用实体类getId();获得id这是我常用的方法,也可以使用selectKey,但是比较麻烦

有时候在开发中需要向表中插入自增ID,这个时候领域模型如果想要获取该ID的值,就需要在相应的mapper文件中添加useGeneratedKeys="true" keyProperty="id"。

useGeneratedKeys 取值范围true、false 默认值是:false。 含义:设置是否使用JDBC的getGenereatedKeys方法获取主键并赋值到keyProperty设置的领域模型属性中

keyProperty 取id的key值

设置完以后我们就可以在前端获取到该自增ID的值

userModelsetId(userDOgetId());

你们点踩的,上面的回答已经很好了。

首先User类里需要2个字段id和myid

id对应自增的序列号,myid对应手动写入的主键

替换下上面的selectKey部分

<selectKey resultType="javalangLong" order="BEFORE" keyProperty="id">

    SELECT SEQ_USER_IDnextval as id from dual

</selectKey>

注意添加了一个 order="BEFORE"

意思是在执行insert 语句前查询序列号并保存到User的id字段中

此时User的id字段就有值了,再执行插入语句。

执行成功后要取出自增的id号直接usergetId();

使用select last_insert_id()时要注意,当一次插入多条记录时,只是获得第一次插入的id值,务必注意。

>

无法直接通过insert *** 作返回,insert只能返回 *** 作成功的数据条数,一般为0,1等。

如果想要知道插入的数据的id,一般做法是提前知道了那条数据对于的编号,或者名称等可能可以作为唯一判断的条件,或者组合条件,在插入完成后再通过这些条件去查询数据库获取到这条数据,从而获取id等数据

以上就是关于mybatis做insert *** 作的时候 怎么才能返回插入的那条数据的id全部的内容,包括:mybatis做insert *** 作的时候 怎么才能返回插入的那条数据的id、Mybatis配置useGeneratedKeys="true" keyProperty="id"的作用、oracle中sequence的mybatis selectKey用法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10627603.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存