设置一个实体类,有一个成员变量,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用法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)