實現插入數據后返回自增主鍵ID的幾種方式
在xml中 insert 標簽中定義 :
* useGeneratedKeys為true,用來設置返回主鍵id的值,
* keyProperty 代表數據庫記錄主鍵字段
* keyColumn 代表 java對象成員屬性名
1 xml 映射文件的方式
<!-- 插入數據:返回記錄主鍵id值 -->
<insert id="saveUser" useGeneratedKeys="true" keyProperty="id" keyColumn="id" parameterType="com.saiyou.entity.User">
insert into user(name,age) values (#{name},#{age})
</insert>
2 接口注解的方式
在接口映射器中通過注解@Options分別設置參數useGeneratedKeys,keyProperty,keyColumn值 如下
// 返回主鍵字段id值
@Options(useGeneratedKeys = true,keyProperty = "id",keyColumn = "id")
@Insert("insert into user(name,age) values (#{name},#{age})")
void returnIdSaveUser(User user);
3 Mybatis Plus的方式
調用 BaseMapper 的 insert())或者調用service的save()方法后 ,默認將自增主鍵封裝在 插入對象中批量保存也會
userMapper.insert(user);
userService.save(user);
userService.saveBatch(users);
參考資料地址:
https://zhuanlan.zhihu.com/p/217375859
文檔糾錯:
xml和@Param的方式,(參考資料顯示此方式,不能返回自增的id),經驗證,自增id是可以返回的