Class QueryBuilder<T>

java.lang.Object
top.magstar.framework.database.query.QueryBuilder<T>
Type Parameters:
T - 实体类型

public class QueryBuilder<T> extends Object
查询构建器。

提供流式 API 用于构建 SQL 查询,支持 SELECT、WHERE、ORDER BY、分页等操作。

Since:
1.0.0
Version:
1.0.0
Author:
Berry_so
  • Constructor Details

    • QueryBuilder

      public QueryBuilder(String tableName, Class<T> entityClass, DatabaseDialect dialect)
      构造查询构建器。
      Parameters:
      tableName - 表名
      entityClass - 实体类
      dialect - 数据库方言
    • QueryBuilder

      public QueryBuilder(Class<T> entityClass, TableInfo tableInfo)
      构造查询构建器。
      Parameters:
      entityClass - 实体类
      tableInfo - 表信息
  • Method Details

    • build

      public SQLQuery build(SQLBuilder sqlBuilder)
      构建查询 SQL。
      Parameters:
      sqlBuilder - SQL 构建器
      Returns:
      SQL 查询对象
    • buildCount

      public SQLQuery buildCount(SQLBuilder sqlBuilder)
      构建统计查询 SQL。
      Parameters:
      sqlBuilder - SQL 构建器
      Returns:
      SQL 查询对象
    • select

      public QueryBuilder<T> select(String... columns)
      指定查询列。
      Parameters:
      columns - 列名数组
      Returns:
      当前构建器实例
    • selectAll

      public QueryBuilder<T> selectAll()
      查询所有列。
      Returns:
      当前构建器实例
    • where

      public QueryBuilder<T> where(String field, Object value)
      添加 WHERE 条件(等于)。
      Parameters:
      field - 字段名
      value - 值
      Returns:
      当前构建器实例
    • where

      public QueryBuilder<T> where(Condition condition)
      添加 WHERE 条件。
      Parameters:
      condition - 条件对象
      Returns:
      当前构建器实例
    • and

      public QueryBuilder<T> and(String field, Object value)
      使用 AND 添加条件(等于)。
      Parameters:
      field - 字段名
      value - 值
      Returns:
      当前构建器实例
    • and

      public QueryBuilder<T> and(Condition condition)
      使用 AND 添加条件。
      Parameters:
      condition - 条件对象
      Returns:
      当前构建器实例
    • or

      public QueryBuilder<T> or(String field, Object value)
      使用 OR 添加条件(等于)。
      Parameters:
      field - 字段名
      value - 值
      Returns:
      当前构建器实例
    • or

      public QueryBuilder<T> or(Condition condition)
      使用 OR 添加条件。
      Parameters:
      condition - 条件对象
      Returns:
      当前构建器实例
    • eq

      public QueryBuilder<T> eq(String field, Object value)
      添加等于条件。
      Parameters:
      field - 字段名
      value - 值
      Returns:
      当前构建器实例
    • ne

      public QueryBuilder<T> ne(String field, Object value)
      添加不等于条件。
      Parameters:
      field - 字段名
      value - 值
      Returns:
      当前构建器实例
    • gt

      public QueryBuilder<T> gt(String field, Object value)
      添加大于条件。
      Parameters:
      field - 字段名
      value - 值
      Returns:
      当前构建器实例
    • gte

      public QueryBuilder<T> gte(String field, Object value)
      添加大于等于条件。
      Parameters:
      field - 字段名
      value - 值
      Returns:
      当前构建器实例
    • lt

      public QueryBuilder<T> lt(String field, Object value)
      添加小于条件。
      Parameters:
      field - 字段名
      value - 值
      Returns:
      当前构建器实例
    • lte

      public QueryBuilder<T> lte(String field, Object value)
      添加小于等于条件。
      Parameters:
      field - 字段名
      value - 值
      Returns:
      当前构建器实例
    • like

      public QueryBuilder<T> like(String field, String pattern)
      添加模糊匹配条件。
      Parameters:
      field - 字段名
      pattern - 匹配模式
      Returns:
      当前构建器实例
    • in

      public QueryBuilder<T> in(String field, Object... values)
      添加 IN 条件。
      Parameters:
      field - 字段名
      values - 值数组
      Returns:
      当前构建器实例
    • in

      public QueryBuilder<T> in(String field, Collection<?> values)
      添加 IN 条件。
      Parameters:
      field - 字段名
      values - 值集合
      Returns:
      当前构建器实例
    • isNull

      public QueryBuilder<T> isNull(String field)
      添加 IS NULL 条件。
      Parameters:
      field - 字段名
      Returns:
      当前构建器实例
    • isNotNull

      public QueryBuilder<T> isNotNull(String field)
      添加 IS NOT NULL 条件。
      Parameters:
      field - 字段名
      Returns:
      当前构建器实例
    • between

      public QueryBuilder<T> between(String field, Object start, Object end)
      添加 BETWEEN 条件。
      Parameters:
      field - 字段名
      start - 起始值
      end - 结束值
      Returns:
      当前构建器实例
    • orderBy

      public QueryBuilder<T> orderBy(String field)
      添加排序(默认升序)。
      Parameters:
      field - 字段名
      Returns:
      当前构建器实例
    • orderBy

      public QueryBuilder<T> orderBy(String field, OrderBy.Direction direction)
      添加排序。
      Parameters:
      field - 字段名
      direction - 排序方向
      Returns:
      当前构建器实例
    • orderByAsc

      public QueryBuilder<T> orderByAsc(String field)
      添加升序排序。
      Parameters:
      field - 字段名
      Returns:
      当前构建器实例
    • orderByDesc

      public QueryBuilder<T> orderByDesc(String field)
      添加降序排序。
      Parameters:
      field - 字段名
      Returns:
      当前构建器实例
    • limit

      public QueryBuilder<T> limit(int limit)
      设置查询数量限制。
      Parameters:
      limit - 最大返回数量
      Returns:
      当前构建器实例
    • offset

      public QueryBuilder<T> offset(int offset)
      设置查询偏移量。
      Parameters:
      offset - 跳过的记录数
      Returns:
      当前构建器实例
    • page

      public QueryBuilder<T> page(int pageNumber, int pageSize)
      设置分页参数。
      Parameters:
      pageNumber - 页码(从 1 开始)
      pageSize - 每页大小
      Returns:
      当前构建器实例
    • buildSelectSQL

      public SQLQuery buildSelectSQL()
      构建 SELECT SQL 查询。
      Returns:
      SQL 查询对象
    • buildCountSQL

      public SQLQuery buildCountSQL()
      构建 COUNT SQL 查询。
      Returns:
      SQL 查询对象
    • buildDeleteSQL

      public SQLQuery buildDeleteSQL()
      构建 DELETE SQL 查询。
      Returns:
      SQL 查询对象
    • getTableName

      public String getTableName()
      获取表名。
      Returns:
      表名
    • getEntityClass

      public Class<T> getEntityClass()
      获取实体类。
      Returns:
      实体类
    • getConditions

      public List<Condition> getConditions()
      获取查询条件列表。
      Returns:
      条件列表的副本
    • getOrderByList

      public List<OrderBy> getOrderByList()
      获取排序列表。
      Returns:
      排序列表的副本
    • getLimitValue

      public Integer getLimitValue()
      获取数量限制。
      Returns:
      数量限制,如果未设置则返回 null
    • getOffsetValue

      public Integer getOffsetValue()
      获取偏移量。
      Returns:
      偏移量,如果未设置则返回 null