mybatisplus 使用basemapper的insert(DO)插入id自增数据时,新增数据的id会自动返回到DO的id属性中吗

是的,在使用MyBatis-Plus的BaseMapper中的insert方法插入数据时,如果数据库表中的主键是自增的,MyBatis-Plus在执行插入操作后会自动将生成的主键值回填到传入的实体对象(DO)的ID属性中。
这是通过MyBatis-Plus提供的@TableId注解结合主键策略来实现的。通常情况下,如果你使用了@TableId(type = IdType.AUTO)注解,并且数据库表设置了自增主键,那么在执行insert方法后,实体对象的ID属性将被设置为数据库生成的自增ID。
下面是一个简单的例子:

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.api.R;
import com.baomidou.mybatisplus.extension.mapper.BaseMapper;
public class UserDO {
    @TableId(type = IdType.AUTO)
    private Long id;
    private String name;
    // 省略getter和setter方法
}
// 定义Mapper接口
public interface UserMapper extends BaseMapper<UserDO> {
}
// 使用
UserDO user = new UserDO();
user.setName("张三");
// 插入前,id为null
int result = userMapper.insert(user);
// 插入后,id会被赋值为数据库生成的自增ID
System.out.println(user.getId());

在这个例子中,UserDOid字段被标记为自增主键。在调用insert方法后,如果插入操作成功,user.getId()将返回新生成的主键值。
需要注意的是,这个特性依赖于使用的数据库和是否正确配置了MyBatis-Plus。如果数据库不支持自增主键或者配置有误,这个功能可能不会正常工作。此外,某些特殊情况下(如数据库不支持自增主键或者使用了分布式ID生成策略),可能需要采取其他方式来获取插入后的ID。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值