1 xml 映射文件中处理
在映射器中配置获取记录主键值
在xml中 insert 标签中定义 : useGeneratedKeys为true,用来设置返回主键id的值, keyProperty 代表数据库记录主键字段 keyColumn 代表 java工具成员属性名
<!-- 插入数据:返回记录主键id值 --><insert id="insert" useGeneratedKeys="true" keyProperty="id" keyColumn="id"> insert into t_user (name,age) values (#{name},#{age})</insert>
2 接口表明处理
在接口映射器中通过表明@Options分别设置参数useGeneratedKeys,keyProperty,keyColumn值 如下

// 返回主键字段id值@Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")@Insert("insert into t_user (name,age) values (#{name},#{age})")void insert(Student stu);
3 Mybatis Plus 中
调用 BaseMapper 的 insert方法后 ,默认将自增主键封装在 插入工具中
4 聊一聊 useGeneratedKeys在MyBatis中,许可设置名称为“useGeneratedKeys”参数存在3个位置如下:
在settings元素中设置useGeneratedKeys参数在xml映射器中设置useGeneratedKeys参数在接口映射器中设置useGeneratedKeys参数 ##### 4.1 在settings元素中设置useGeneratedKeys参数 对付支持自动天生记录主键的数据库,如:MySQL,SQL Server,此时设置useGeneratedKeys参数值为true,在实行添加记录之后可以获取到数据库自动天生的主键ID。5 把稳事变利用useGeneratedKeys天生主键时,不能在DAO层利用@Param表明通报参数,否则无法获取主键。
///Dao层对应的代码 不能利用 @Param表明通报参数/// Long savNewUser(@Param("user") User user); Long savNewUser( User user);///Mapper对应的映射层 <insert id="add" useGeneratedKeys="true" keyProperty="id"> insert into t_user(u_name,u_age) VALUES (#{user.userName},#{user.userAget}) </insert>