Mybatis-Plus(二) 条件构造器EntityWrapper,AbstractWrapper

条件构造器咱们讲述queryWrapper和updateWrapper的用法、关系、以及强大之处,但是在具体的项目当中使用EntityWrapper 也可以来实现,本篇文章就来说一下 EntityWrapper;

 

首先 我们来说一下AbstractWrapper:

QueryWrapper(LambdaQueryWrapper) 和 UpdateWrapper(LambdaUpdateWrapper) 的父类
用于生成 sql 的 where 条件, entity 属性也用于生成 sql 的 where 条件
注意: entity 生成的 where 条件与 使用各个 api 生成的 where 条件没有任何关联行为

下面是wapper的关系继承图:

 

wapper介绍 :

Wrapper :  条件构造抽象类,最顶端父类,抽象类中提供4个方法西面贴源码展示
AbstractWrapper : 用于查询条件封装,生成 sql 的 where 条件
AbstractLambdaWrapper : Lambda 语法使用 Wrapper统一处理解析 lambda 获取 column。
LambdaQueryWrapper :看名称也能明白就是用于Lambda语法使用的查询Wrapper
LambdaUpdateWrapper : Lambda 更新封装Wrapper
QueryWrapper : Entity 对象封装操作类,不是用lambda语法
UpdateWrapper :  Update 条件封装,用于Entity对象更新操作

但是在具体的项目当中基本得CRUD我觉得 用EntityWrapper 更文方便些,下面是一些例子:

1  比如说我们去更新某个实体:

        String id = request.getParameter("id");
        System.out.println(params);
        String title = request.getParameter("title");
        System.out.println(title);
        QdAdTestEntity qdAdTestEntity = new QdAdTestEntity();
        qdAdTestEntity.setTitle((String)params.get("title"));
        boolean update = qdAdTestService.update(qdAdTestEntity, new EntityWrapper<QdAdTestEntity>().eq("id", params.get("id")));

还有一种较为简单的方法,就是前端传递过来的就是这一个将要更新的实体类:

这时我们直接使用一句话就可以完成:
 boolean update = qdAdTestService.update(qdAdTestEntity, new EntityWrapper<QdAdTestEntity>().eq("id", qdAdTestEntity.get("id")));
这样也会去更新相应的实体

2  当我们想要去查询某个列表时候:

    首先是单纯的列表,没有什么条件
List<User> list = qdGoodsCategoryService.selectList(new EntityWrapper<>());
当然  new EntityWrapper也可以写null

当需要某些条件去查询的时候:


如我们要去查询 姓名是张丹的所有人,则可以写为如下实例:

List<User> list = qdGoodsCategoryService.selectList(new User,new EntityWrapper<User>().eq("name","张丹"));
这样 就可以查询出来想要的结果,当然如果想要更多的条件拼接可以去官网查看,
下面是官网地址:https://mp.baomidou.com/guide/wrapper.html#abstractwrapper


3 增加某条记录 我们可以直接将前端传递过来的实体进行insert,如下:

userService.insert(user);


4 删除,对于删除来说,以前的写法都是单个的去删除,但是这儿可以将前端传递过来的id集合进行批量的删除,具体如下:

System.out.println(ids);
UserService.deleteBatchIds(Arrays.asList(ids));
这样即可批量的删除

注: 我们现在写的这些方法都是mybatis-puls自己提供的,在相应的service,dao,mapper 当中是没有对于的方法和sql的,所以说大大的减轻了我们开发的压力;


但是从实现上来讲,要注意以下极几点(springBoot项目来说):

     **在编写实体类时,实现Serializable接口,用@TableName("user") 申明表明,用@TableId来声明主键
     **在编写Dao 时要继承BaseMapper<T>,泛型T 就写你相应的实体类型
     **在编写service的实现类的时候,除了要实现相应的service接口,还要继承
           extends ServiceImpl<S,T>   S--就是你编写的相应的Dao,T--就是相应的实体类

这就是在springBoot项目当中需要去注意的内容

以上就是用EntityWrapper基本得增删改查,要是想要了解其他的条件构造可以去官网查看:

官网地址:https://mp.baomidou.com/guide/wrapper.html#abstractwrapper
 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值