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

回到顶部