mybatis insertupdate delete默认返回值解释与如何设置返回表主键

Posted 吴容

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis insertupdate delete默认返回值解释与如何设置返回表主键相关的知识,希望对你有一定的参考价值。

在使用mybatis做持久层时,insert、update、delete,sql语句默认是不返回被操作记录主键的,而是返回被操作记录条数;

那么如果想要得到被操作记录的主键,可以通过下面的配置方式获取。

针对Sequence主键而言,在执行insert sql前必须指定一个主键值给要插入的记录,如Oracle、DB2,可以采用如下配置方式:

<insert id="save" parameterType="user">

<selectKey resultType="java.lang.Short" order="BEFORE" keyProperty="id">

SELECT SEQ_TEST.NEXTVAL FROM DUAL

</selectKey>

insert into user(name, age,password) values (#{name},#{age},#{password})

</insert>

针对自增主键的表,在插入时不需要主键,而是在插入过程自动获取一个自增的主键,比如MySQL,可以采用如下两种配置方式:

 

<insert id="save" parameterType="user" useGeneratedKeys="true" keyProperty="id">

insert into user(name, age,password) values (#{name},#{age},#{password})

</insert>

 或

<insert id="save" parameterType="user">

<selectKey resultType="java.lang.Short" order="AFTER" keyProperty="id">

SELECT LAST_INSERT_ID() AS id

</selectKey>

insert into user(name, age,password) values (#{name},#{age},#{password})

</insert>

 在插入操作完成之后,参数user的id属性就已经被赋值了,再在逻辑层利用user.getId()获取就好。

以上是关于mybatis insertupdate delete默认返回值解释与如何设置返回表主键的主要内容,如果未能解决你的问题,请参考以下文章

DocumentListener 没有调用 insertUpdate 方法

使用 laravel moltin 购物车时的 LaravelSession::insertUpdate() 问题

使用insertupdate和delete报错注入

在ckeditor中的Deled特殊标签

数据同步工具

tp类型自动转换和自动完成