屏蔽用户输入查询通配符‘%’或‘_’
来源:互联网 发布:用手充电软件下载 编辑:程序博客网 时间:2024/05/18 02:04
问题:在模糊查询的SQL语句中,如果有用户输入查询通配符‘%’,使用 select * from table where code like '%condition%'的SQL,会查出全部记录,这个如何解决?
if(!StringUtils.isEmpty(_cname)){ /** 处理模糊通配符%和_ */ sql.append(" and c.FCOURSEWARE_NAME LIKE '%").append(EscapeUtils.escapeStr(_cname)).append("%' escape '\\'"); model.addAttribute("_cname", _cname); }
EscapeUtils的escapeStr方法:(注意:只能屏蔽已‘%'或'_'开始或结尾的字符串)
/** * Description: 处理转义字符%和_,针对ORACLE数据库 * @param str * @return */ public static String escapeStr(String str){ if(str.startsWith("%") || str.startsWith("_")){ str = "\\" + str; } if(str.endsWith("_")){ int index = str.indexOf("_"); str = str.substring(0, index) + "\\" + "_"; } if(str.endsWith("%")){ int index = str.indexOf("%"); str = str.substring(0, index) + "\\" + "%"; } return str; }
屏蔽字符串中的任意位置%'或'_' ,针对Oralce数据库:
public String escapeStr(String str){ String temp = ""; for (int i = 0; i < str.length(); i++) { if (str.charAt(i) == '%' || str.charAt(i) == '_') { temp += "\\" + str.charAt(i); } else { temp += str.charAt(i); } } if (temp.contains("%") || temp.contains("_")) { temp = "'%" + temp + "%' escape '\\'"; } else { temp = "'%" + temp + "%'"; } return temp; }
0 0
- 屏蔽用户输入查询通配符‘%’或‘_’
- 屏蔽用户手动输入的代码或特殊字符处理
- Hive中LIKE查询使用通配符'%'的一个BUG--当转义符'\'遇到通配符'%'或'_'
- Hive中LIKE查询使用通配符'%'的一个BUG--当转义符'\'遇到通配符'%'或'_'
- sql 查询 下划线 _ 克服通配符,模糊查询通配符字符
- “_”通配符
- oracle模糊查询含有通配符'%','_'的写法
- Mysql| 使用通配符进行模糊查询(like,%,_)
- 用户表格模板_查询_排序
- 【泛型】_通配符笔记
- 【泛型】_通配符笔记
- css2.08_通配符
- Oracle_用户表_结构信息_查询小大全
- 正则 或 通配符 匹配
- 【前端】输入框中根据用户输入内容动态查询
- 输入框中根据用户输入内容动态查询
- 数据库查询中的通配符
- 使用通配符查询
- hi3518e移植wifi模块注意事项
- 杭电(hdu)ACM 1003 Max Sum
- linux中线程如何退出
- 一点一点学架构(四)—Spring.NET错误Cannot Resolve Type……
- JSP基本语法
- 屏蔽用户输入查询通配符‘%’或‘_’
- 去除重复字符并排序
- 用MHA实现mysql自动故障转移
- 强制停止monkey执行
- RabbitMQ 集群与高可用配置
- hdu--4417Super Mario+划分树
- JAVA String--16进制 转换
- 如何把maven项目转成web项目
- django_openstack_auth源码分析与集成