Package gudusoft.gsqlparser.sqlenv
Class IdentifierProfile
Object
gudusoft.gsqlparser.sqlenv.IdentifierProfile
厂商标识符配置档案(Vendor Identifier Profile)
封装每个数据库厂商的完整标识符配置,包括:
- 按对象组(NAME_GROUP, COLUMN_GROUP, ROUTINE_GROUP)的标识符规则
- Vendor-specific flags(如 MySQL lower_case_table_names, SQL Server collation)
- 集中管理所有 vendor-specific 配置
- 统一注入路径,避免配置散落在各处
- 支持缓存失效(通过 fingerprint)
设计目标:
使用示例:
// 创建 Oracle profile(使用默认 flags)
IdentifierProfile oracleProfile = IdentifierProfile.forVendor(
EDbVendor.dbvoracle,
VendorFlags.defaults()
);
// 创建 MySQL profile(指定 lower_case_table_names)
IdentifierProfile mysqlProfile = IdentifierProfile.forVendor(
EDbVendor.dbvmysql,
new VendorFlags(1, null, false, false) // lower_case_table_names = 1
);
// 查询规则
IdentifierRules tableRules = oracleProfile.getRules(ESQLDataObjectType.dotTable);
- Since:
- 3.1.0.9
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enum对象组(用于区分不同对象类型的标识符规则)static classVendor-specific flags(厂商特定配置) -
Method Summary
Modifier and TypeMethodDescriptionstatic IdentifierProfileforVendor(EDbVendor vendor, IdentifierProfile.VendorFlags flags) 为指定厂商创建标识符配置档案long计算配置指纹(用于 TObjectName 缓存失效)getFlags()获取 vendor flagsgetRules(ESQLDataObjectType objectType) 获取指定对象类型的标识符规则获取数据库厂商toString()
-
Method Details
-
forVendor
为指定厂商创建标识符配置档案- Parameters:
vendor- 数据库厂商flags- vendor-specific flags- Returns:
- 标识符配置档案
-
getRules
获取指定对象类型的标识符规则- Parameters:
objectType- 对象类型- Returns:
- 标识符规则
-
getFlags
获取 vendor flags- Returns:
- vendor flags
-
getVendor
获取数据库厂商- Returns:
- 厂商
-
getFingerprint
计算配置指纹(用于 TObjectName 缓存失效)当 vendor 或 flags 变化时,指纹会改变,触发缓存失效
- Returns:
- 配置指纹(64位哈希值)
-
toString
-