通过mybatis添加数据记录时,如何返回主键
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过mybatis添加数据记录时,如何返回主键相关的知识,希望对你有一定的参考价值。
参考技术A 案例:方法一
<insert
id="add"
parameterType="EStudent"
useGeneratedKeys="true"
keyProperty="id">
insert
into
TStudent(name,
age)
values(#name,
#age)
</insert>
useGeneratedKeys="true"
:设置是否使用JDBC的getGenereatedKeys方法获取主键并赋值到keyProperty设置的领域模型属性中。
(适用于mysql、sqlserver数据库,oracle不能使用,使用selectkey子节点做)
keyProperty:赋值的对象的属性名称。
方法二
<insert
id="add"
parameterType="EStudent">
//
下面是SQLServer获取最近一次插入记录的主键值的方式
<selectKey
resultType="int"
keyProperty="id"
order="AFTER">
SELECT
LAST_INSERT_ID()
AS
id
</selectKey>
insert
into
TStudent(name,
age)
values(#name,
#age)
</insert>
Mybatis在insert时返回主键id
需要注意的地方:
1、添加记录能够返回主键的关键点在于需要在标签中添加以下三个属性。
useGeneratedKeys:必须设置为true,否则无法获取到主键id。
keyProperty:设置为POJO对象的主键id属性名称。
keyColumn:设置为数据库记录的主键id字段名称
2、新添加主键id并不是在执行添加操作时直接返回的,而是在执行添加操作之后将新添加记录的主键id字段设置为POJO对象的主键id属性
调用时:
roomCheckInfoMapper.insertSelective(roomCheckInfo);
int rciId = roomCheckInfo.getRciId();
System.out.println("插入返回的主键为"+roomCheckInfo.getRciId());
以上是关于通过mybatis添加数据记录时,如何返回主键的主要内容,如果未能解决你的问题,请参考以下文章
使用mybatis注解@Options实现添加记录时返回主键值