INSERT语句返回数据库生成的主键
开发过程遇到需要将数据插入到库中,再对该条数据进行状态编辑
可以在xml这样设置
<insert id="insert" parameterType="com.xxx.xxx.Entiiy" useGeneratedKeys="true" keyProperty="id">
insert into table_name (name, value, type)
values (#{name}, #{value}, #{type})
</insert>
Entiiy实体为
public class Entiiy{
/**
* 主键id,数据库自动生成
*/
private Long id;
/**
* 名称
*/
private String name;
/**
* 值
*/
private String value;
/**
* 类型
*/
private boolean type;
}
流程如下
Entiiy entity = new Entiiy();
entity.setName("张三");
entity.setValue("不吃香菜");
entity.setType(false);
insert(entity);
这个时候,insert执行后会把id赋值到Entity上
我们可以下一步,获取到数据库自动生成的主键ID
Entiiy entity = new Entiiy();
entity.setName("张三");
entity.setValue("不吃香菜");
entity.setType(false);
insert(entity);
//获取id
Long id = entity.getId();
//可以通过id进行后续业务操作刚插入的数据
.......
其中主要是配置是
parameterType=“com.xxx.xxx.Entiiy”
useGeneratedKeys=“true”
keyProperty=“id”
对于支持自动生成记录主键的数据库,useGeneratedKeys设置为true,表示在执行完insert插入语句后,会把数据库自动生成的主键ID返回。
这里我们设置useGeneratedKeys=“true” 并且标识主键字段为 keyProperty=“id”
那么在执行完insert语句后就会把对应的keyProperty,映射返回到参数类型parameterType的配置里。