在xml中 insert 标签中定义 :
* useGeneratedKeys为true,用来设置返回主键id的值,
* keyProperty 代表数据库记录主键字段
* keyColumn 代表 java对象成员属性名
<!-- 插入数据:返回记录主键id值 --> <insert id="saveUser" useGeneratedKeys="true" keyProperty="id" keyColumn="id" parameterType="com.saiyou.entity.User"> insert into user(name,age) values (#{name},#{age}) </insert>
在接口映射器中通过注解@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);
调用 BaseMapper 的 insert())或者调用service的save()方法后 ,默认将自增主键封装在 插入对象中
userMapper.insert(user); userService.save(user);
参考资料地址:
https://zhuanlan.zhihu.com/p/217375859
文档纠错:
xml和@Param的方式,(参考资料显示此方式,不能返回自增的id),经验证,自增id是可以返回的