前言
R结束,开始U(歌手。。还是第三季和上一季是巅峰)
这个是自己学习时候记得笔记要是想详细了解可以去MP官网,上边有更详细的配置流程以及视频教学:MyBatis-Plus
更新操作
返回值为影响行数
- updateById()
- 传入要更新对象实体,不为null的属性放到set中
public void updateTypeById() {
Type type = new Type();
type.setTypeId(1);
type.setProductDate(new Date("2017-2-10"));
int updRow = this.typeMapper.updateById(type);
System.out.println(updRow + ",影响记录条数");
}
- 使用条件构造器 UpdateWrapper
- update(Entity,QueryWrapper)
- Entity中的实体不为null的变量会放到 set 语句中
- UpdateWrapper中为where条件
- UpdateWrapper在构造的时候传入实体,也会将实体中的属性放到where中,会出现where语句中的重复
public void updateTypeByWrapper() {
// 方法一
Type type = new Type();
type.setProductDate(new Date("2017-2-10"));
UpdateWrapper<Type> wrapper = new UpdateWrapper<>();
wrapper.eq("name", "巧克力");
int updRow = this.typeMapper.update(type, wrapper);
// // 方法二 : 当不需要创建实体时,只需要设置set就可以
// UpdateWrapper<Type> wrapper1 = new UpdateWrapper<>();
// wrapper1.eq("type_id",1).set("name","黑白");
// int updRow1 = this.typeMapper.update(null,wrapper1);
System.out.println(updRow + ",影响记录条数");
}
- Lambda构造器
- 好处就是不用担心列名设置错了
public void updateTypeByWrapperLambda() {
LambdaUpdateWrapper<Type> lambdaUpdateWrapper = Wrappers.<Type>lambdaUpdate();
lambdaUpdateWrapper.eq(Type::getName, "黑白").eq(Type::getTypeId, 1)
.set(Type::getProductDate, new Date("2016-5-21"));
int updRow = this.typeMapper.update(null, lambdaUpdateWrapper);
}
- Lambda的链式调用
- 当影响的行数>0时,返回true
public void updateTypeByWrapperLambdaChain(){
boolean upd = new LambdaUpdateChainWrapper<Type>(typeMapper)
.eq(Type::getName,"巧克力").eq(Type::getTypeId,1)
.set(Type::getName,"菲克力")
.update();
}