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 | 替换 |
支持 |
不支持 |
|