// 新增数据sava(T) :boolean// 伪批量插入,实际上是通过 for 循环一条一条的插入savaBatch(Collection<T>) :boolean// 伪批量插入,int 表示批量提交数,默认为 1000savaBatch(Collection<T>,int) :boolean// 新增或更新(单条数据)saveOrUpdate(T) :boolean// 批量新增或更新saveOrUpdateBatch(Collection<T>...
无论是insert on duplicate key update还是replace into,在插入时MySQL返回的影响行数就是插入的记录数,但是在更新时返回的影响行数时更新行数*2。所以笔者只会在批量更新时放心的使用insert on duplicate key update,这样根据返回值是否是参数大小的2倍就能判断是否只进行了更新操作。 笔者推崇开发中把数据库当作单纯...
wrapper2.eq("ID","BIN");intupdateNum2=dmMapper.update(null, wrapper2); log.info("更新行数:"+updateNum2); } 我们发现,当达梦正常更新的时候,返回的是更新的行数,但是当更新不存在的数据时,返回的却是-1,所以MP的作者用的是大于等于1来判断是否更新成功,而不是 ==0; 我们在用连接工具看看 oracl...
mybatis-plus返回部分字段的解决方式 mybatis-plus返回部分字段的解决⽅式 mybatis-plus的代码⽣成器会在实体类中⽣成数据库所有字段,我们去⽤mapper接⼝查询时,会返回数据库所有的字段。但有些字段不是我们想要的,⽐如:deleted,所以我们可以在不需要的字段上⾯加@JsonIgnore注解,返回给前端的时候会...
更新操作 删除操作 1. 更新操作 更新操作这里讲解两种方式: a.根据id更新 b.以条件构造器作为参数的更新方法 以及条件构造器中set方法的使用 上图为MP中BaseMapper接口提供的两种update方法。 a.根据id更新 使用updateById方法进行更新时,参数传入的是一个实体类,实体类中的id必须有,其他字段的set值为修改后的值。
// 批量新增或更新 saveOrUpdateBatch(Collection<T>) : boolean // 批量新增或更新(可指定批量提交数) saveOrUpdateBatch(Collection<T>, int) : boolean 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 大致看完后,上手测试一下。 sava(T) ...
注:insert()返回值int,数据插入成功的行数,成功的记录数。getId()获取主键值 2、update操作 注意:null的字段不更新 日志: email没有赋值,是null ,所有没有出现在 set 语句中; age 有默认 0,被更新了。 3、delete操作 删除有多个方法: (1) deleteById:按主键删除,其他方法后面介绍 ...
如果主键存在,则执行更新操作;如果主键不存在,则执行插入操作。下面我们将详细介绍saveOrUpdate()方法的实现原理。 1.方法签名 首先,我们来看一下saveOrUpdate()方法的方法签名: java public boolean saveOrUpdate(T entity) 可以看到,方法接收一个泛型参数T,并返回一个boolean类型的值。参数entity是要进行保存或...
mybatis-plus其实已经帮我们写好了MybatisMapWrapperFactory类(开启返回map结果集的下划线转驼峰)在mybatis-plus-extension.jar下有⼀个类 com.baomidou.mybatisplus.extension.MybatisMapWrapperFactory 和 com.baomidou.mybatisplus.extension.handlers.MybatisMapWrapper mybatis-plus⾃带map下划线转驼峰配置类 重点...
使⽤SpringBootTest来进⾏测试,先进⾏oracle的测试,第⼀次更新我们数据库ID='1'的数据,第⼆次更新不存在的数据,主要看第⼆次返回值 @Test void testOracle() { log.info(oracleMapper.selectList(null)+"");UpdateWrapper<TestOracle> wrapper = new UpdateWrapper<>();wrapper.set("VALUE","2...