Mybatis-Plus基本使用

官网:http://mp.baomidou.com/guide/

条件

        wrapper.between(column, val1, val2)
        wrapper.groupBy(columns)  //对应sql中分组
        wrapper.eq(column, params) //相当于where条件
        wrapper.in(column, value) //sql中in
        wrapper.notIn(column, value) //sql中 not in
        wrapper.orderBy(columns, isAsc) //排序
        wrapper.exists(value) //相对于sql中exists查询
        wrapper.notExists(value) //相当于sql中not exists查询
        wrapper.notBetween(column, val1, val2) //相当于sql中在某个范围内使用的between
        wrapper.ge(column, params) //大于等于
        wrapper.le(column, params) //小于等于
        wrapper.like(column, value) //模糊查询
        wrapper.having(sqlHaving, params) //条件

查询

  List<UserEntity> list = ud.selectByMap(columnMap) //通过map查询 适用场景是分页查询
  List<UserEntity> list2 = ud.selectList(wrapper); //如果为Null,默认查询所有
  List<UserEntity> list3 = ud.selectCount(wrapper)//通过EntityWrapper根据某个字段获取总数
  List<UserEntity> list4 = ud.selectMaps(wrapper) //EntityWrapper查询
  List<UserEntity> list5 = ud.selectPage(rowBounds, wrapper) //rowBounds里面封装了起止和长度,wrapper具体

增删改

 ud.insert(entity)  //应用场景是指定你需要的实体增加到对应的表中
 ud.delete(wrapper) //通过EntityWrapper指定字段删除数据
 ud.deleteById(id)  //主键删除
 ud.deleteByMap(columnMap) //通过map删除
 ud.deleteBatchIds(idList) //批量删除
 ud.insertAllColumn(entity) //默认插入该实体所有字段
 ud.insertUserEntity(map) //通过map新增数据
 ud.update(entity, wrapper) //通过EntityWrapper更新实体
 ud.updateAllColumnById(entity) //更新所有实体,通过主键更新
 ud.updateById(entity) //更新指定实体,通过主键更新
 ud.updateUserMap(map) //通过map

条件构造器


AbstractWrapper条件参数

QueryWrapper(LambdaQueryWrapper) 和 UpdateWrapper(LambdaUpdateWrapper) 的父类
用于生成 sql 的 where 条件, entity 属性也用于生成 sql 的 where 条件

查询方式 说明
where WHERE 语句,拼接 + WHERE 条件
and AND 语句,拼接 + AND 字段=值
or OR 语句,拼接 + OR 字段=值 !!!主动调用or表示紧接着下一个方法不是用and连接!(不调用or则默认为使用and连接)
eq 等于=
allEq 基于 map 内容等于=
ne 不等于<>
gt 大于>
ge 大于等于>=
lt 小于<
le 小于等于<=
like 模糊查询 LIKE
likeLeft LIKE ‘%值’
likeRight LIKE ‘值%’
notLike 模糊查询 NOT LIKE
in IN (v0, v1, …)
notIn NOT IN (v0, v1, …)
inSql IN ( sql语句 )
notInSql 字段 NOT IN ( sql语句 )
isNull NULL 值查询
isNotNull IS NOT NULL
groupBy GROUP BY 字段, …
having HAVING ( sql语句 )
orderBy ORDER BY 字段, …
orderByAsc ORDER BY 字段, … ASC
orderByDesc ORDER BY 字段, … DESC
exists EXISTS 条件语句
notExists NOT EXISTS 条件语句
between BETWEEN 条件语句
notBetween NOT BETWEEN 条件语句
addFilter 自由拼接 SQL
last 无视优化规则直接拼接到 sql 的最后 !!!只能调用一次,多次调用以最后一次为准 有sql注入的风险,请谨慎使用
apply 拼接SQL

QueryWrapper条件

说明:继承自 AbstractWrapper ,自身的内部属性 entity 也用于生成 where 条件
及 LambdaQueryWrapper, 可以通过 new QueryWrapper().lambda() 方法获取

查询方式 说明
select 设置查询字段

UpdateWrapper条件

说明:继承自 AbstractWrapper ,自身的内部属性 entity 也用于生成 where 条件
及 LambdaUpdateWrapper, 可以通过 new UpdateWrapper().lambda() 方法获取!

查询方式 说明
set SQL SET 字段
setSql 设置 SET 部分 SQL

分页

 if (search != null && search.size() > 0) {
            for (String key : search.keySet()) {
                String value = search.get(key);
                queryWrapper.like(key, value);
            }
        }
        IPage<PartsSpu> iPage = partsSpuMapper.selectPage(new Page<PartsSpu>(page, limit), queryWrapper);
        List<PartsSpu> records = iPage.getRecords();

        return this.getIPageApiResult(iPage, records);

简单的模糊查询

// 对应SQL: SELECT * FROM SYS_USER WHERE USERNAME LIKE '%O%'
public List<SysUser> QueryWrapper(String column, String value) {

        Wrapper<SysUser> userWrapper = new QueryWrapper<SysUser>();
        QueryWrapper<SysUser> like = ((QueryWrapper<SysUser>) userWrapper).like("username", "o");
        return  userMapper.selectList(like);
    };

多条件拼接

//对应sql:select username from sys_user where id > 1

public List<SysUser> query(){
        return userMapper.selectList(
                new QueryWrapper<SysUser>()
                .select("username")
                .gt("id",1)
        );
    }

猜你喜欢

转载自blog.csdn.net/qq_33799320/article/details/83538815