FluentMybatis Where语法(一) | FluentMybatis实践(2)

简介: FluentMybatis Where语法(一) | FluentMybatis实践

Exist与In子查询

下面测试一下exist以及in,并且添加子查询的情况。exist会使用两种写法一种为直接写sql语句,另一种为使用lamdas表达式方式。

接口代码添加

  /**
   * 测试exist
   *
   * @return list
   */
  List<TestFluentMybatisEntity> query5();
  /**
   * 测试exist lamdas
   *
   * @return list
   */
  List<TestFluentMybatisEntity> query6();
  /**
   * 测试in lamdas
   *
   * @return list
   */
  List<TestFluentMybatisEntity> query7();

实现代码添加

  @Override
  public List<TestFluentMybatisEntity> query5() {
    return testFluentMybatisMapper.listEntity(
        new TestFluentMybatisQuery()
            .where
            .age()
            .ge(30)
            .and
            .exists("select 1 from test_fluent_mybatis where name=?", "李四")
            .end());
  }
  @Override
  public List<TestFluentMybatisEntity> query6() {
    return testFluentMybatisMapper.listEntity(
        new TestFluentMybatisQuery()
            .where
            .age()
            .ge(30)
            .and
            .exists(q -> q.select.name().end().where.name().eq("李四").end())
            .end());
  }
  @Override
  public List<TestFluentMybatisEntity> query7() {
    return testFluentMybatisMapper.listEntity(
        new TestFluentMybatisQuery()
            .where
            .id()
            .in(
                new TestFluentMybatisQuery()
                    .select
                    .apply("id")
                    .end()
                    .where
                    .age()
                    .between(10, 50)
                    .end())
            .end());
  }

控制层代码添加

  @ApiOperation(value = "where-exist语法", notes = "where-exist语法")
  @RequestMapping(value = "/exist", method = RequestMethod.GET)
  @ResponseBody
  public Result<List<TestFluentMybatisEntity>> query5() {
    try {
      return Result.ok(whereService.query5());
    } catch (Exception exception) {
      return Result.error(ErrorCode.BASE_ERROR_CODE.getCode(), exception.getMessage(), null);
    }
  }
  @ApiOperation(value = "where-exist1语法", notes = "where-exist1语法")
  @RequestMapping(value = "/exist1", method = RequestMethod.GET)
  @ResponseBody
  public Result<List<TestFluentMybatisEntity>> query6() {
    try {
      return Result.ok(whereService.query6());
    } catch (Exception exception) {
      return Result.error(ErrorCode.BASE_ERROR_CODE.getCode(), exception.getMessage(), null);
    }
  }
  @ApiOperation(value = "where-in-sub语法", notes = "where-in-sub语法")
  @RequestMapping(value = "/in-sub", method = RequestMethod.GET)
  @ResponseBody
  public Result<List<TestFluentMybatisEntity>> query7() {
    try {
      return Result.ok(whereService.query7());
    } catch (Exception exception) {
      return Result.error(ErrorCode.BASE_ERROR_CODE.getCode(), exception.getMessage(), null);
    }
  }

验证效果

image.png


image.png

前两个接口返回的结果一致,没啥问题。

相关文章
|
2月前
|
SQL Java 数据库连接
MyBatis-Plus高级用法:最优化持久层开发
MyBatis-Plus 通过简化常见的持久层开发任务,提高了开发效率和代码的可维护性。通过合理使用条件构造器、分页插件、逻辑删除和代码生成器等高级功能,可以进一步优化持久层开发,提升系统性能和稳定性。掌握这些高级用法和最佳实践,有助于开发者构建高效、稳定和可扩展的企业级应用。
160 13
|
8月前
|
SQL Java 数据库连接
JavaWeb基础第三章(MyBatis的应用,基础操作与动态SQL)
JavaWeb基础第三章(MyBatis的应用,基础操作与动态SQL)
|
9月前
|
SQL 安全 Java
MyBatis LambdaQueryWrapper的概念以及具备那些写法
【4月更文挑战第2天】MyBatis是一个流行的Java持久层框架,它提供了与数据库交互的简化方法。而MyBatis Plus是一个在MyBatis基础上的增强工具,它引入了很多便利的特性,其中之一就是LambdaQueryWrapper。这个类是一个基于Java 8的Lambda表达式的查询构造器,使得构建查询语句变得更加简洁和类型安全。
307 3
|
9月前
|
SQL Java 关系型数据库
MyBatis中的9种常用动态sql标签精妙用法
MyBatis中的9种常用动态sql标签精妙用法
290 0
|
9月前
|
SQL 缓存 Java
JAVAEE框架技术之8-myBatis ORM框架技术参数和动态SQL语句
JAVAEE框架技术之8-myBatis ORM框架技术参数和动态SQL语句
103 0
JAVAEE框架技术之8-myBatis ORM框架技术参数和动态SQL语句
FluentMybatis 聚合查询、apply方法 | FluentMybatis实践(2)
FluentMybatis 聚合查询、apply方法 | FluentMybatis实践(2)
FluentMybatis Where语法(一) | FluentMybatis实践(3)
FluentMybatis Where语法(一) | FluentMybatis实践
FluentMybatis Where语法(一) | FluentMybatis实践(3)
FluentMybatis Update语法 | FluentMybatis实践
FluentMybatis Update语法 | FluentMybatis实践
FluentMybatis Update语法 | FluentMybatis实践

热门文章

最新文章