MyBatis-Plus查询方法

普通查询

  • T selectById(Serializable id);(String Long Integer都有实现该接口)
  • List selectBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList); (只需要传入idList作为主键ID列表,不能为空)
  • List selectByMap(@Param(Constants.COLUMN.MAP) Map<String,Object> columnMap); (String必须为数据库表字段,Object为值)

以条件构造器作为参数的查询(AbstractWrapper抽象类,具体实现子类有QueryWrapper)

具体案例:在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
{0}防止SQL注入漏洞
在这里插入图片描述
用到lambda表达式
在这里插入图片描述
在这里插入图片描述
nested 正常嵌套 不带 AND 或者 OR
例: nested(i -> i.eq(“name”, “李白”).ne(“status”, “活着”))—>(name = ‘李白’ and status <> ‘活着’)
在这里插入图片描述
在这里插入图片描述
last 无视优化规则直接拼接到 sql 的最后
注意事项:只能调用一次,多次调用以最后一次为准 有sql注入的风险,请谨慎使用
在这里插入图片描述
select不列出全部字段
在这里插入图片描述
select写前写后都可以,第二种写法是排除掉不要的表字段,用于需要显示多个表字段。
在这里插入图片描述
在这里插入图片描述

condition作用
在like方法中选择含有返回boolean类型的condition作为条件输入,即可作为判断条件选择指定的SQL语句在数据库中进行查询。
在这里插入图片描述

实体作为条件构造器方法的参数
该方法与使用like查询互不干扰,两种条件都会执行,容易出现问题。(解决方法:在实体类中对相应的成员属性加@TableField(condition=SqlCondition.LIKE),具体什么条件用什么属性值。而如果只想使用小于条件,而SqlCondition中却没有明确标明小于的属性值则可以拆解NOT EQUAL,写成@TableField(condition="%s<#{%s}"))
在这里插入图片描述在这里插入图片描述

AllEq用法

传三个参数的情况
第一个参数是拦截指定的属性(用lambda表达式)第二个参数是将Map集合作为AllEq方法的参数传递,第三个参数传入false将忽略掉值未null的查询。
在这里插入图片描述在这里插入图片描述

其它使用条件构造器方法

  • selectMaps(queryWrapper) 返回List<Map<String,Object>>类型,好处在于当你只需要从多数列中查询少数列的值情况,返回的只有要查询列的结果。
  • 案例:
    在这里插入图片描述
  • 结果在这里插入图片描述
  • List selectObjs(@Param(Constants.WAPPER) Wrapper queryWrapper) 只返回第一个字段的值
  • 案例:在这里插入图片描述
  • 结果在这里插入图片描述
  • Integer selectCount(queryWrapper) 返回总记录数
  • 案例在这里插入图片描述
  • 结果在这里插入图片描述
  • 方法(若查询条件结果满足两条以上就会报错)

在这里插入图片描述

  • 案例在这里插入图片描述
  • 结果
    在这里插入图片描述

Lambda条件构造器

  1. LambdaQueryWrapper lambda = new QueryWrapper().lambda();
  2. LambdaQueryWrapper lambda = new LambdaQueryWrapper();
  3. LambdaQueryWrapper lambda = Wrappers.lambdaQuery();
  4. 特殊 :需要传入继承BaseMapper的类 (后面的list()是LambdaQueryChainWrapper实现的一个接口ChainQuery中的方法,底层还是调用BaseMapper中的selectList()方法)在这里插入图片描述

用法:在这里插入图片描述
好处:编译时期会帮你检查有无误写成员变量。

  • 案例在这里插入图片描述
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值