Interface Literal

All Superinterfaces:
ArithmeticOperable, ComparisonOperable, Expression, OrderOperable, PatternMatchingOperable, Segment, Serializable
All Known Implementing Classes:
Literal.Default

public interface Literal extends Expression
字面量。

字面量会直接拼入 SQL,不使用 ? 参数绑定。仅用于可信常量或框架内部值, 严禁将终端用户输入传入本类。需要处理用户输入时,请使用参数绑定 (如 eq/in/like 等比较条件)。

本类只按 SQL 标准对单引号做双写处理,不保证在所有数据库的转义模式下都安全 (例如 MySQL/MariaDB 默认将反斜杠视为转义符)。安全边界由调用方负责。

Author:
Maning
  • Field Details

    • NULL

      static final Literal NULL
      NULL 常量
  • Method Details

    • of

      static Literal of(Object rawVal)
      字面量,不支持抛异常。

      会直接拼入 SQL,不绑定为 ?;rawVal 必须是可信值, 禁止传入终端用户输入。

      Parameters:
      rawVal - 原始值
      Returns:
      表达式
    • parse

      static Literal parse(Object rawVal)
      解析为字面量, 不支持返回null。

      会直接拼入 SQL,不绑定为 ?;rawVal 必须是可信值, 禁止传入终端用户输入。

      Parameters:
      rawVal - 原始值
      Returns:
      字面量包装
    • rawVal

      Object rawVal()
      原始值
      Returns:
      原始值
    • sql

      String sql()
      sql
      Returns:
      sql