SQL中的变量及占位符格式

最后更新:2024-05-06 14:01:46 | 状态:未完成

SELECT * FROM CRM_USER WHERE ID = :ID


 以::标识的执行时直接替换
 以:标识的执行时以?占位 
 NAME LIKE :NM + '%' 
 (NAME = :NM) 
 NAME = '::NM' 
 NM IN (:NM)

 以${}标识的执行时直接替换
 以{}标识的执行时以?占位
 NM = {NM}
 NM = ${NM}
 NM LIKE '%{NM}%'    NM LIKE '%${NM}%'

 NM IN(${NM}



MyBatis中的变量
${id} 直接替换
#{id} 生成占位符

但有一种情况例外:变量在单引号之内时,会被直接替换而不是用占位符,如 无论是  ':ID'  还是 '::ID' 都替换成 '123'
注意在pg环境中 ::key 格式会与::int 格式的类型转换冲突,如果出现冲突可以通过ConfigTable.IS_ENABLE_PLACEHOLDER_REGEX_EXT = false; 禁用
为了适配mybatis定义的sql 各种格式都兼容,但是:和{}不要混用,为方便记忆推荐统一按MyBatis格式
符号 解析形式
Anyline MyBatis
备注
#{id}
占位符 支持
支持

:id 占位符 支持
不支持

{id}
点位符 支持
不支持
用来兼容旧版本,新版本中不要用,避免与josn格式冲突
${id} 替换 支持
支持

::id 替换 支持
不支持

最近更新 搜索 提交