一、SaveOrUpdate方法简介 SaveOrUpdate方法是MyBatisPlus提供的一个便捷方法,用于将一条数据插入或更新到数据库中。该方法接收一个参数,即待插入或更新的数据对象。如果该数据对象已经存在于数据库中,则更新该数据;如果不存在,则将其插入到数据库中。 二、实现原理 1.判断数据对象是否为空 在SaveOrUpdate方法中,...
其中,saveOrUpdate方法是MyBatis-Plus中的一个核心方法之一,用于在数据库中插入或更新一条记录。 saveOrUpdate方法的底层原理主要基于MyBatis中的两个方法:selectById和updateById。在执行saveOrUpdate方法时,首先通过selectById方法查询待插入或更新的记录是否已经存在于数据库中。如果该记录已存在,则会执行updateById方法...
saveOrUpdate()方法是在MyBatisPlus中为开发者提供的一种非常便利的数据更新方法。这个方法可以根据实体类的主键来判断是执行插入还是更新操作。如果主键存在,则执行更新操作;如果主键不存在,则执行插入操作。下面我们将详细介绍saveOrUpdate()方法的实现原理。 1.方法签名 首先,我们来看一下saveOrUpdate()方法的方法签...
三、saveOrUpdateBatch的实现原理 saveOrUpdateBatch实际上是Mybatis的批量插入(batch)和批量更新的结合体。当我们执行saveOrUpdateBatch时,Mybatis会执行一个insert语句,将数据批量插入到数据库中。如果插入时有冲突(如主键重复),则会执行一个update语句,对已存在的数据进行更新。
MyBatis-Plus——saveOrUpdate方法如何确定主键 saveOrUpdate方法:先更新,更新失败返回0;发起查找,查找失败返回0,最后进行插入操作 有三种执行情况 1.插入的数据不带id 插入成功。同时MyBatis-Plus会自动生成一个19位的id,默认主键生成策略为IdType.ID_WORKER,根据类型随机生成一个全局唯一id...
IService接口的saveOrUpdate(T entity)方法 BaseMapper接口的insert(T entity)方法 更新 IService接口的updateById(T entity)方法 IService接口的updateBatchById(Collection<T> entityList, int batchSize)方法 BaseMapper接口的updateById(@Param(Constants.ENTITY) T entity)方法 BaseMapper接口的update(@Param(Constants....
userService.saveOrUpdate(user0); userService.remove(new QueryWrapper<User>().eq("username", "markerhub0")); 上面的关键点其实就是学会灵活运用QueryWrapper这个条件包装类。 结束语 ok,今天的文章就到此结束啦,简单得介绍了一下mybatis plus的使用,更多还需要自己去探索!
boolean saveBatch(Collection<T> entityList, int batchSize); // 批量插入数据注: entityList 表示实体对象集合 batchSize 表示一次批量插入的数据量,默认为 1000 【添加或修改数据:(增或改)】 boolean saveOrUpdate(T entity); // id 若存在,则修改, id 不存在则新增数据 default boolean saveOrUpdate(T ...
saveOrUpdate,首先直接更新,如果更新失败返回0,接着发起查找,查询失败返回0,接着才是发起插入 问题:如何确定主键呢? 插入的数据不带id 插入的数据带id,且数据库存在 插入的数据带id,且数据库不存在 插入的数据不带id 插入成功,而且mybatis-plus会帮你生成一个19位的id(1498495250845941762),策略为:mybatis-plus...