在实际项目中,应该编写单元测试或集成测试来验证 insertOrUpdateAndReturnId 方法的正确性。 测试应包括插入新记录和更新已有记录的场景,并验证返回的主键ID是否正确。 通过上述步骤和代码示例,你可以在MyBatis-Plus中成功使用 insertOrUpdate 方法并获取插入或更新后的主键ID。
这也是本文最大的特点,查询网上各种阐述Mybatis返回主键的文章,基本只关注insert时Mybatis返回主键的情况,对于插入或更新的sql语句insert on duplicate key update时mybatis返回主键(此时还细分为仅insert,仅update和insert和update混合三种情况)的文章则比较少。 (2)selectKey和useGeneratedKeys Mybatis用这两个方法都能返...
MyBatis-Plus——saveOrUpdate方法如何确定主键 saveOrUpdate方法:先更新,更新失败返回0;发起查找,查找失败返回0,最后进行插入操作 有三种执行情况 1.插入的数据不带id 插入成功。同时MyBatis-Plus会自动生成一个19位的id,默认主键生成策略为IdType.ID_WORKER,根据类型随机生成一个全局唯一id 2.插入的数据带id且数...
Mybatis 的 insert、update、delete 可以返回的类型有:Integer、Long、Boolean(true 为成功,false 为失败)。 正文 1、增加数据 <!-- 获取插入的自增类型的主键的值需要设置useGeneratedKeys="true", 然后用 keyProperty 来说明这个主键对应的是该对象的哪个属性, 执行完插入之后这个主键的值便会被设置到改对象的这个...
原本使用save时是没有问题了,改成saveOrUpdate用了一下就报错了。 com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: error: can not execute. because can not find column for id from entity! 就是这个mybatisPlus不能找到哪个是主键字段,因为这个saveOrUpdate默认是根据主键执行操作的!
调用saveOrUpdateBatchByMultiId()方法根据多主键批量保存或更新 packagecom.chenly.mpp.controller;importcom.chenly.mpp.entity.Score;importcom.chenly.mpp.service.ScoreService;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.web.bind.annotation.PostMapping;importorg.springframew...
在Mybatis中需要使用 useGeneratedKeys,keyProperty,keyColumn 设置自增主键值的回返,在实体类对象中获取即可。在MybatisPlus中在进行数据新增时,在新增成功后,会自动的将自增的主键值返回到实体类对象中,前提是需要在实体类中使用@TableId表明主键字段,并且为自增类型。 MybatisPlus的全局配置策略 1全局配置策略介绍 ...
Update语句 根据实体类中的id,对数据进行更新。 int updateById(@Param(Constants.ENTITY) T entity); 根据wrapper封装的条件,将entity中的数据更新到数据库中。 int update(@Param(Constants.ENTITY) T entity, @Param(Constants.WRAPPER) Wrapper<T> updateWrapper); Select语句 根据 主键ID 查询数据。 T select...
返回值为数据库中修改的行数,这里添加成功返回时 “1” 多数据添加看一下官方文档,这里就不说了 #更新数据 intupdate=userMapper.updateById(user); updateById()是根据user主键来更新的,如果user类中其它不需要更新的字段可以置为null,mybatisplus不会更新未设置值的字段...