Class NamedParameterParser

java.lang.Object
cloud.opencode.base.string.parse.NamedParameterParser

public final class NamedParameterParser extends Object
NamedParameterParser - Parses :paramName style SQL parameters 命名参数解析器 - 解析 :paramName 风格的 SQL 参数

Converts named-parameter SQL (e.g. WHERE id = :id AND name = :name) into positional-parameter SQL (WHERE id = ? AND name = ?) and extracts values from a Map<String,Object> in the correct order.

将命名参数 SQL(如 WHERE id = :id AND name = :name) 转换为位置参数 SQL(WHERE id = ? AND name = ?), 并按正确顺序从 Map<String,Object> 中提取值。

Parameter names must match [a-zA-Z_][a-zA-Z0-9_]*. Colons inside string literals or cast expressions (::) are ignored.

Features | 主要功能:

  • Named parameter to positional parameter conversion - 命名参数到位置参数转换
  • Value extraction by parameter order - 按参数顺序提取值
  • String literal and cast expression awareness - 字符串字面量和类型转换感知

Usage Examples | 使用示例:

Map<String, Object> params = Map.of("id", 42, "name", "Alice");
var parsed = NamedParameterParser.parse("SELECT * FROM t WHERE id = :id AND name = :name");
Object[] values = NamedParameterParser.extractValues(parsed, params);
// parsed.sql()  → "SELECT * FROM t WHERE id = ? AND name = ?"
// values        → [42, "Alice"]

Security | 安全性:

  • Thread-safe: Yes (stateless utility) - 线程安全: 是(无状态工具类)
  • Null-safe: No (input SQL must not be null) - 空值安全: 否(输入SQL不能为空)
Since:
JDK 25, opencode-base-string V1.0.0
Author:
Leon Soo www.LeonSoo.com
See Also:
  • Method Details