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 条件

查询方式说明
whereWHERE 语句,拼接 + WHERE 条件
andAND 语句,拼接 + AND 字段=值
orOR 语句,拼接 + OR 字段=值 !!!主动调用or表示紧接着下一个方法不是用and连接!(不调用or则默认为使用and连接)
eq等于=
allEq基于 map 内容等于=
ne不等于<>
gt大于>
ge大于等于>=
lt小于<
le小于等于<=
like模糊查询 LIKE
likeLeftLIKE ‘%值’
likeRightLIKE ‘值%’
notLike模糊查询 NOT LIKE
inIN (v0, v1, …)
notInNOT IN (v0, v1, …)
inSqlIN ( sql语句 )
notInSql字段 NOT IN ( sql语句 )
isNullNULL 值查询
isNotNullIS NOT NULL
groupByGROUP BY 字段, …
havingHAVING ( sql语句 )
orderByORDER BY 字段, …
orderByAscORDER BY 字段, … ASC
orderByDescORDER BY 字段, … DESC
existsEXISTS 条件语句
notExistsNOT EXISTS 条件语句
betweenBETWEEN 条件语句
notBetweenNOT 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() 方法获取!

查询方式说明
setSQL 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)
        );
    }
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值