MybatisPlus学习(三)---DQL编程控制

条件查询的三种方式

mybatisplus将书写复杂的SQL条件查询进行了封装,使用编程的形式完成查询条件的组合
mybatisplus使用wrapper对条件进行封装,可以创建Wrapper对象来设置条件

第一种查询方式

QueryWrapper qw=new QueryWrapper();
qw.lt("id",5);
List<Book> bookss=bookDao.selectList(lqw1);
 for(Book book:bookss)
  {
      System.out.println(book);
  }

第二种查询方式

//第三种方式
 QueryWrapper<Book> qw=new QueryWrapper<>();
 qw.lambda().lt(Book::getId,5);
  //查询所有
 List<Book> books=bookDao.selectList(lqw);
     for(Book book:books)
      {
          System.out.println(book);
      }

第三种查询方式

LambdaQueryWrapper<Book> lqw=new LambdaQueryWrapper<>();
lqw.lt(Book::getId,5);
 //查询所有
List<Book> books=bookDao.selectList(lqw);
    for(Book book:books)
    {
           System.out.println(book);
    }

多条件查询

三种查询方式都支持链式编程
在这里插入图片描述

并且 和 或者

在这里插入图片描述

条件查询null判定

1.通常使用if来判断是否为null,但是条件过多的时候书写if会造成代码的繁琐

User user=new User();
LambdaQueryWrapper<User> lqw=new LambdaQueryWrapper<>();
if(null !=user.getAge())
{
lqw.lt(User::getAge,18);
}

2.使用条件参数控制来判断null

User user=new User();
LambdaQueryWrapper<User> lqw=new LambdaQueryWrapper<>();	
lqw.lt(null!=user.getAge(),User::getAge,18);

查询投影

查询投影:通过设置查询条件来得到期望的结果
在这里插入图片描述

查询条件设置

https://baomidou.com/pages/10c804/#alleq

字段映射和表名映射

1.当数据库中表的字段名和实体类属性名不一致的时候,需要在实体类中设置映射

//实体类中
private String password;
//表中
pwd varchar(50)

可以在属性上添加@TableField(value=“表字段名”)注解来设置映射
在这里插入图片描述

2.当实体类中添加了数据库中未定义的属性

可以在属性上添加@TableField(exist=false)注解,表示该属性在数据库表中是否存在,默认为true
在这里插入图片描述

3.采用默认查询开放了更多的字段查看权限

例如在查询全部的时候select * from tb_user;可能将用户的密码查出来,造成一定的风险

可以在属性上添加@TableField(select=false)注解,设置属性不参与查询
在这里插入图片描述

4.实体类名和表名不一致

使用@TableName(“表名”)注解来解决
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值