MyBatis框架中SQL返回自增ID

       前言

        最近写项目时在做一个增加数据的操作时需要得到增加行的自增ID。


MyBatis返回自增ID

        这次主要记录MyBatis的映射中返回自增ID

<insert id="appSave" parameterType="app" keyProperty="id" useGeneratedKeys="true">

</insert>

在添加的语句中增加两个属性:keyProperty | useGeneratedKeys

useGeneratedKeys中的参数为true;

keyProperty设置返回自增值要赋值的属性。
(1)新增时请求的参数只是一些属性并不是对象。返回自增的ID会赋值到你的修改行:Integer id = appSave(…)自增ID会赋值到id上。
(2)新增一般会是一个对象。使用keyProperty指定你请求对象的属性ID,在添加完之后自增ID会被赋值到你请求的对象的指定属性上。

添加成功后可以通过之前请求的入参对象中赋值的属性拿刚才的自增ID

UserMapper.userSave(User user);
Integer id = user.getId();

在MyBatis3.3.0以上的版本如果对象使用了@Param注解需要在keyProperty属性中添加对象的别名.id

<insert id="appSave" parameterType="app" keyProperty="app.id" useGeneratedKeys="true">

</insert>