MyBatis新增记录返回主键ID失败原因
一. 使用场景:
业务场景通常在进行多表插入时,后表需要获取到前表新插入数据ID时使用。
二. 使用方法:
1. XML映射返回主键(推荐)
调用方:
@Override public String insertUserInfo(User user) {
studentMapper.insertUserInfo(user);
System.out.println("XML映射返回userId=" + user.getUserId());
return "OK";
}
Mapper配置 文件中配置:
<insert id="insertUserInfo" parameterType="com.example.demo.entity.User" useGeneratedKeys="true" keyProperty="userId" keyColumn="user_id"> INSERT INTO `user` (user_name, user_age, user_email)
VALUES
(#{userName}, #{userAge}, #{userEmail})
</insert>
其中需要注意的参数如下:
- useGeneratedKeys:允许JDBC支持自动生成主键
- keyProperty:实体类对应的属性
- keyColumn:数据库对应的字段
2. 注解映射返回主键
调用方:
@Override public String insertUserInfo(User user) {
studentMapper.insertUserInfo(user);
System.out.println("注解映射返回userId=" + user.getUserId());
return "OK";
}
Mapper接口中配置:
@Options(useGeneratedKeys = true, keyProperty = "userId", keyColumn = "user_id") @Insert("INSERT INTO `user` (user_name, user_age, user_email) VALUES (#{userName}, #{userAge}, #{userEmail})")
void insertByInnotate(User user);
调用方接收主键ID必须通过传入对象调用id,而无法直接接收!
以上是 MyBatis新增记录返回主键ID失败原因 的全部内容, 来源链接: utcz.com/z/517023.html