场景
拼接sql
语句执行like
查询
解决方案
- 将单个单引号(
'
),替换为两个(''
) - 自定义
Escape
字符比如(/
) - 给关键字符(
\_,%,[,],
)加前缀Escape字符(/\_,/%,/[,/]
) - 最终sql语句的like部分类似
like 'ni''hao/_wor/%ld' Escape '/'
代码
char escape='/';
text = text.replaceAll("'","''");
text = text.replaceAll("[\\[\\]\\_%]",escape+"$0");
结果类似:
like 'ni''hao/\_wor/%ld' ESCAPE '/'