Class DefaultCountSqlParser

java.lang.Object
org.miaixz.bus.pager.parser.defaults.DefaultCountSqlParser
All Implemented Interfaces:
CountSqlParser

public class DefaultCountSqlParser extends Object implements CountSqlParser
sql解析类,提供更智能的count查询sql
Since:
Java 17+
Author:
Kimi Liu
  • Field Details

    • KEEP_ORDERBY

      public static final String KEEP_ORDERBY
      See Also:
    • TABLE_ALIAS

      protected static final net.sf.jsqlparser.expression.Alias TABLE_ALIAS
    • skipFunctions

      protected final Set<String> skipFunctions
    • falseFunctions

      protected final Set<String> falseFunctions
  • Constructor Details

    • DefaultCountSqlParser

      public DefaultCountSqlParser()
  • Method Details

    • getSmartCountSql

      public String getSmartCountSql(String sql, String countColumn)
      获取智能的countSql
      Specified by:
      getSmartCountSql in interface CountSqlParser
      Parameters:
      sql - sql
      countColumn - 列名,默认 0
      Returns:
      the string
    • getSimpleCountSql

      public String getSimpleCountSql(String sql)
      获取普通的Count-sql
      Parameters:
      sql - 原查询sql
      Returns:
      返回count查询sql
    • getSimpleCountSql

      public String getSimpleCountSql(String sql, String name)
      获取普通的Count-sql
      Parameters:
      sql - 原查询sql
      name - 名称
      Returns:
      返回count查询sql
    • sqlToCount

      public net.sf.jsqlparser.statement.select.Select sqlToCount(net.sf.jsqlparser.statement.select.Select select, String name)
      将sql转换为count查询
      Parameters:
      select - 原查询sql
      name - 名称
      Returns:
      返回count查询sql
    • isSimpleCount

      public boolean isSimpleCount(net.sf.jsqlparser.statement.select.PlainSelect select)
      是否可以用简单的count查询方式
      Parameters:
      select - 查询
      Returns:
      the boolean
    • processSelect

      public void processSelect(net.sf.jsqlparser.statement.select.Select select)
      处理selectBody去除Order by
      Parameters:
      select - 查询信息
    • processPlainSelect

      public void processPlainSelect(net.sf.jsqlparser.statement.select.PlainSelect plainSelect)
      处理PlainSelect类型的selectBody
      Parameters:
      plainSelect - 计划查询
    • processWithItemsList

      public void processWithItemsList(List<net.sf.jsqlparser.statement.select.WithItem> withItemsList)
      处理WithItem
      Parameters:
      withItemsList - WithItem
    • processFromItem

      public void processFromItem(net.sf.jsqlparser.statement.select.FromItem fromItem)
      处理子查询
      Parameters:
      fromItem - FromItem
    • keepOrderBy

      protected boolean keepOrderBy()
      保留 order by
    • keepSubSelectOrderBy

      protected boolean keepSubSelectOrderBy()
      保留子查询 order by
    • orderByHashParameters

      public boolean orderByHashParameters(List<net.sf.jsqlparser.statement.select.OrderByElement> orderByElements)
      判断Orderby是否包含参数,有参数的不能去
      Parameters:
      orderByElements - OrderByElement
      Returns:
      the boolean