文档 首页

select

发布日期:2023-03-07
最后更新:2025-07-02 22:45:19
阅读:12,250

查询有3类方法

querys/query 返回 DataSet/DataRow

maps返回List<Map>

selects/select 返回EntitySet<Entity>/Entity


比较常用的是querys/query
query的查询条件参数主要有两个来源
service.query("表名或SQL", ConfigStore configs, String ... conditions)

先说conditions:这个比较简单
  • 可以是原生的SQL,没有什么是原生SQL解决不了的,如果下面几种方式生成SQL比较困难,不如直接写原生的SQL
    如 service.querys("user", "cod = 1", "name is not null");
  • 可以是key:value分隔的形式
    这种方式主要用来实现值为空时忽略当前条件
    如 String code = "" //一般是由调用方传入参数 或从rquest 中获取的参数
    service.query("user", "code:"+code)
    当code值为空时(包括""与null) 即 "code:"或"code:null"
    最终生成SQL SELECT * FROM user 没有查询条件

    也有些情况要求code必须有值,如果没有值整个SQL就不执行,即返回0行数据
    service.query("user", "++code:"+code)
    ++表示当前条件必须有值,如果没有值则中断SQL执行

    也有比较少的情况生成is null的条件
    service.query("user", "+code:"+code)  
    "code:","code:null"效果一样
    生成SQL: SELECT * FROM USER WHERE CODE IS NULL

    +表示当前条件必须参与查询 

configs:一般用来构造比较复杂的条件

  • 经常是通过AnylineController.condition()方法返回,该方法主要用来以("COLUMN:param")的格式接收rquest参数
    常用的约定格式,可能用到的格式千变万化,具体参考【约定格式
    "CODE:code"          CODE = ?
    "CODE:[code]"       CODE IN(?,?)
    "CODE:%code%"   CODE LIKE '%?%'
    "[CODES]:code"       FIND_IN_SET(?, CODES)
    同样用+以及++处理空值的情况
    另外分页也可以在这里设置condition(true) 表示需要分页,分页参数有全局配置一般不需要在这里设置参考【分页查询示例
  • 如果没有web环境也可以直接创建 ConfigStore configs =  new DefaultConfigStore()
    一般在后台中构造查询条件时会用到,参考【ConfigStore
    configs.and("ID", "1")
    .and("CODE", "2")
    .between("AGE", 10, 20)
数据库操作 · 2023-10-31

JDBC操作clickhouse示例

数据库操作 · 2023-10-16

关于分页参数

分页 · 2023-08-15

ConfigStore分页相关的参数

常用示例 · 2023-10-24

异构数据源迁移核心部分代码Mysql到Apache Ignite|VoltDB

常用示例 · 2023-08-09

自定义是查询条件

常见问题 · 2024-12-03

前置命令

常见问题 · 2024-08-26

自定义SQL忽略未赋值部分查询条件

常见问题 · 2024-07-24

关于分页(不)查询总行数

实战对比 · 2023-07-12

从最简单的查询开始

实战对比 · 2023-07-15

查询部分列(属性)

实战对比 · 2023-07-16

根据情况生成不同的查询条件(FIND_IN_SET)

实战对比 · 2023-07-16

不提供参数值的两种特殊情况

实战对比 · 2023-07-17

为所有的查询sql统一添加查询条件

实战对比 · 2023-07-18

查询条件默认值

实战对比 · 2023-07-18

分页查询

实战对比 · 2023-07-20

查询排序

重要的更新 · 2023-10-21

关于ands

Entity · 2023-08-04

属性关联表主键生成器注解

query/querys · 2023-04-19

sequence

AnylineService · 2023-09-07

关于查询结果集单行与多行的问题

AnylineService · 2023-08-16

简易方式指定数据源和主键

service.dml · 2023-06-25

查询条件中空值的处理方式

query/querys · 2023-06-28

查询返回指定列

query/querys · 2023-06-28

关于几个 空值 的查询示例

query/querys · 2024-01-11

根据所有String类型模糊查询

query/querys · 2024-06-03

union查询

query/querys · 2024-06-12

JSON_CONTAINS,JSON_CONTAINS_PATH

query/querys · 2024-09-28

exists

query/querys · 2024-09-28

group/order/having/exists条件

约定格式 · 2024-09-09

多表关联关系json

查询条件 · 2023-10-23

关于函数操作

condition() · 2023-06-16

condition参数与query参数的混淆

condition() · 2023-02-03

OR查询条件

condition() · 2023-07-26

关于数组参数值

自定义SQL · 2022-11-12

XML中自定义复杂SQL

MongoDB · 2023-08-27

MongoDB基础操作

condition() · 2019-12-27

关于必须条件

condition() · 2020-02-25

关于IN条件

condition() · 2019-12-27

关于默认值

condition() · 2020-03-26

关于or

condition() · 2019-12-27

关于like

AnylineService · 2020-11-25

查询时设置主键

condition() · 2022-02-15

关于几种OR条件查询的情况

condition() · 2022-07-31

IN条件下多种参数格式的接收

分页 · 2022-08-24

关于分页参数

condition() · 2023-06-28

几个分页查询的示例

自定义SQL · 2022-11-12

SQL中的变量及占位符格式

Listener/Interceptor · 2023-06-22

统一添加查询条件