Mybayis-plus快速上手,用得比较多的方法

1.什么是Mybatis-plus?

Mybatis-plus是mybatis的增强版,一般对单表进行增删改查,如果要自己要构造条件进行增删改查的话,就要用条件构造器进行封装条件。

2.Service CRUD接口

以下的增删改查是没有用到条件构造

1.增加:

// 插入一条记录(选择字段,策略插入)
boolean save(T entity);
// 插入(批量)
boolean saveBatch(Collection<T> entityList);

2.删除:

// 根据 ID 删除
boolean removeById(Serializable id);
// 根据 columnMap 条件,删除记录
boolean removeByMap(Map<String, Object> columnMap);

Map<字段名,值>

3.修改

// 根据 ID 选择修改
boolean updateById(T entity);
// 根据ID 批量更新
boolean updateBatchById(Collection<T> entityList);

例子:Student studen = new Student();
     student.setId(1);    根据这个id进行修改

     student.setName("aa"); 将原来的name的属性,改成aa

4.

查询

// 根据 ID 查询
T getById(Serializable id);     只查询一条记录



查询多条记录
// 查询所有
List<T> list();
// 查询列表
List<T> list(Wrapper<T> queryWrapper);
// 查询(根据ID 批量查询)
Collection<T> listByIds(Collection<? extends Serializable> idList);


/ 查询(根据 columnMap 条件)
Collection<T> listByMap(Map<String, Object> columnMap);

例子:map

3.条件构造器,可以根据自己要想要构造的条件进行增删改查

步骤:

1.QueryWrapper<实体类> qw = new QueryWrapper<> ();

2.再将qw放入要进行增删改查的操作中

以下例子是baseMapper

组装条件查询

删除也是用querywrapper

使用querywrapper修改信息

对比上一张图片

 只要求查询几个字段

 

使用updatewrapper实现修改功能

4. wrapper,一些常用的条件,大部分都是返回多条语句

allEq:以map为参数条件

  allEq:以map为参数条件,再加一个参数时,当null2IsNull是ture时,我们设置字段的值为null时,会做为条件。

allEq(Map<R, V> params, boolean null2IsNull)

eq:等于=,封装当个条件("列名",值),有多个eq时用and拼接

例子:查询名字等于李四的

select   * from student where name = “李四”

 ne:不等于("列名",值)

例子:查询名字不是张三 的

in,后面是值列表,再列表内的都是符合条件的

用list集合作为参数

notln

5.例子:lambda表达式:条件构造器的条件是通用的

  更新:
        LambdaUpdateWrapper<ModuleTest> updateWrapper = new LambdaUpdateWrapper<>();
        updateWrapper.set(ModuleTest::getName, "2324");
        updateWrapper.eq(ModuleTest::getId, 1);
        service.update(updateWrapper);
         将id为1的的姓名改为2324

查询:

LambdaQueryWrapper<实体类> lambda= new LambdaQueryWrapper<实体类>();
    lambda.eq(实体类::get实体类字段, 入参)
          .orderByAsc(实体类::get实体类字段)
          .select(实体类::get实体类字段, 实体类::get实体类字段);

总结:

一、LambdaQueryWrapper<>

二、QueryWrapper<实体>().lambda()

三、Wrappers.<实体>lambdaQuery()

四、LambdaQueryChainWrapper<实体>(xxxxMapper)

总共有四种lambda表达式,前三种的操作都差不多,只有第四种可以进行链式查询方式

例如:

 @Test
      void TestLambdaQueryChainWrapper() {
        //1、eq查询单条
         User one = new LambdaQueryChainWrapper<>(userMapper)
                .eq(User::getName, "liangd1")
                .one();
         System.out.println("UserOne:" + one);
 
          //2、查询list
        List<User> users = new LambdaQueryChainWrapper<>(userMapper)
                .eq(User::getName, "zcx")
                 .list();
         System.out.println("UserList:" + users);
 
        //3、模糊查询
         List<User> LikeList = new LambdaQueryChainWrapper<>(userMapper)
                 .like(User::getEmail, "test")
                .list();
        System.out.println("LikeUser:" + LikeList);
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值