Mybatis-Plus插入后返回元素ID
MyBatis-Plus 支持在插入数据后自动回填生成的主键ID。为了实现这一功能,你需要确保以下几点:
- 数据库表的主键设置为自增或有其他机制生成唯一ID。
- 实体类中的ID属性使用了
@TableId
注解,并且type
参数设置为IdType.AUTO
(对应数据库自增)或者IdType.INPUT
(手动输入ID)。 - 在
@Mapper
注解的Mapper接口中使用insert
方法进行插入操作。
以下是一个简单的例子:
实体类(例如User.java):
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
@TableName("user")
public class User {
@TableId(value = "id", type = IdType.AUTO) // 表示ID自增
private Long id;
private String name;
// 省略其他属性、getter和setter方法
}
Mapper接口:
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface UserMapper extends BaseMapper<User> {
// MyBatis-Plus会自动提供基本的CRUD操作
}
使用Mapper插入数据并获取ID:
import org.springframework.beans.factory.annotation.Autowired;
public class UserService {
@Autowired
private UserMapper userMapper;
public void addUser(User user) {
userMapper.insert(user); // 插入用户
Long userId = user.getId(); // 插入后,ID已被回填
// 处理回填后的ID
}
}
在执行insert
操作后,MyBatis-Plus会自动将数据库生成的ID回填到User实体的id字段中。这样你就可以在插入操作后获取到新插入行的ID。
评论已关闭