• Mybatis plus学习随笔:QueryWrapper条件构造器的使用


    一.mybatis plus中实现查询的对象封装操作类

    mybatis-plus提供了Wapper抽象类,提供了很多sql语法支持的方法,比如模糊查询,比较,区间,分组查询,排序,判断空,子查询等等,方便我们用面向对象的方式去实现sql语句

    Wrapper : 条件构造抽象类,最顶端父类,抽象类中提供4个方法

    AbstractWrapper : 用于查询条件封装,生成 sql 的 where 条件,QueryWrapper(LambdaQueryWrapper) 和 UpdateWrapper(LambdaUpdateWrapper) 的父类。

    AbstractLambdaWrapper : Lambda 语法使用 Wrapper统一处理解析 lambda 获取 column。

    LambdaQueryWrapper :看名称也能明白就是用于Lambda语法使用的查询Wrapper

    LambdaUpdateWrapper : Lambda 更新封装Wrapper

    QueryWrapper : Entity 对象封装操作类,不适用lambda语法

    UpdateWrapper : Update 条件封装,用于Entity对象更新操作

    二.使用Demo

    /**
     * 查找USERID为1、USERNAME为“小明”的实体User对象
     * sql: select * from User where USERID = 1 and USERNAME = '小明'
     */
    QueryWrapper<User> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("USERID", 1); queryWrapper.eq("USERNAME", 1); List<User> User= baseMapper.selectOne(queryWrapper );

    上面这段代码的意思就是,首先新建一个QueryWrapper对象,类型为User对象,也就是你需要查询的实体数据,

    下面就是拼条件:

    queryWrapper.eq("USERID", 1);   //where USERID = 1

    queryWrapper.eq("USERNAME", "小明");  // AND USERNAME = '小明'

    这两句的意思是User对象对应的数据库表中的USERID为1,USERNAME字段值要为"小明",eq为wrapper方法中的等于=,

    然后调用baseMapper.selectOne方法,入参就为前面新建好的查询对象封装类

    当你的Mapper 继承BaseMapper接口(BaseMapper学习入口)后,无需编写 mapper.xml 文件,即可获得CRUD功能这样mybatis plus底层封装的方法即可实现帮你查询你设置查询条件查询到的数据

    三.QueryWrapper的方法

  • 相关阅读:
    AddTransient、AddSingleton、AddScoped的区别
    ASP.NET Core Linux下为 dotnet 创建守护进程(必备知识)
    DotNetCore 结合 Nginx 将网站部署到阿里云
    centos7安装配置mysql8
    centos7安装nginx
    ASP.NET Core搭建多层网站架构【0-前言】
    .Net Core3.0 WebApi 二:API 文档神器 Swagger
    .Net Core3.0 WebApi 三:读取appsettings.json
    .Net Core3.0 WebApi 四:JWT权限验证
    vue动态配置参数,避免重复打包
  • 原文地址:https://www.cnblogs.com/omgliyq/p/13844183.html
Copyright © 2020-2023  润新知