cad模糊查询符号_模糊查询(排除%等通配符并支持不连续关键字查询)
前段时间我在开发项目的时候,就关于模糊查询遇到了一点问题,主要是有两大问题:1、通配符问题;2、不连续关键字查询。下面我一一说出我是怎么解决的:
1、统配符问题
比如说在搜索框中输入'%'、'_'、'/'时会出错,因为这些特殊符号在sql语句查询的时候是有他特定的意义的,所有这里要对前台传过来的keyword搜索内容进行排除通配符处理,我是在工具类中写了一个方法代码如下:
/**
* 根据搜索特殊字符串
* @param id
* @return 取不到返回null
*/
public static String specialStr(String str){
Integer index=str.indexOf("%");
Integer index1=str.indexOf("_");
Integer index2=str.indexOf("/");
StringBuffer stringBuffer = new StringBuffer(str);
if(index!=-1) {
stringBuffer.insert(index, "\\");
}
if(index1!=-1) {
stringBuffer.insert(index1, "\\");
}
if(index2!=-1) {
stringBuffer.insert(index2, "\\");
}
return stringBuffer.toString();
}
然后在controller层导入该工具类,使用specialStr方法就ok了,代码如下:
String keyword = request.getParameter("keyword");
String keyword1 = "";
if (!"".equals(keyword) && keyword != null) {
keyword1 = CommonUtils.specialStr(request.getParameter("keyword"));// 排除%等通配符
}最后将keyword1作为搜索内容带到数据库中查询就行了。
2、不连续关键字查询
当在搜索框中输入不连续的关键字时,也能从数据库中搜索的到该内容,就比如:我想搜索公司名称为阿里巴巴的数据信息时,我输入阿巴也能搜索的到阿里巴巴,这该怎么处理呢?其实很简单,也是写一个工具类,将搜索框中的字符串每两个字符之间都加上一个‘%’就ok了,具体代码如下:
public static String specialStrKeyword(String str){
if(str==null||str==""){
return null;
}
StringBuffer stringBuffer = new StringBuffer(str);
int length=str.length();
for (int i = 0; i
char chari=stringBuffer.charAt(i);
if(i==0){
if(chari=='%'||chari=='_'||chari=='\\'){
stringBuffer.insert(i, "\\");
i++;
length++;
}
}else{
if(chari=='%'||chari=='_'||chari=='\\'){
stringBuffer.insert(i, "%\\");
i+=2;
length+=2;
}else{
stringBuffer.insert(i, "%");
i++;
length++;
}
}
}
return stringBuffer.toString();
}
同样在controller层导入该工具类,使用specialStrKeyword方法就ok了,代码如下:
String keyword = request.getParameter("keyword");
String keyword1 = '';
if (!"".equals(keyword) && keyword != null) {
keyword1 = CommonUtils.specialStr(request.getParameter("keyword"));// 排除%等通配符
keyword1 = CommonUtils.specialStrKeyword(keyword1);
}
最后将keyword1作为搜索内容带到数据库中查询就行了。
cad模糊查询符号_模糊查询(排除%等通配符并支持不连续关键字查询)相关推荐
- cad模糊查询符号_万能模糊查询SQL
****************************************************************** * 功能:万能模糊查询SQL * 时间:2015/1/30 16: ...
- cad模糊查询符号_SQL 模糊查询之特殊字符
1. SQL Like对时间查询 时间格式的数据为各种各样,不方便查询.在使用like模糊查询时,先将数据转换为统一的格式,这样在使用like查询时就方便多了. 2. SQL like对特殊字符 在s ...
- 自定义插件解决MyBatis-Plus like查询遇_ % \等字符需转译问题(含分页查询)
我们使用MyBatis-Plus执行LIKE模糊查询时,若预处理参数包含_ % \等字符(欢迎补充),会查询出所有结果,这不是我们需要的. 不论写法是自定义SQL xxx like concat('% ...
- Java根据学号提取班级_学生成绩管理系统 1. 能够实现根据以下关键字查询:学生姓名 、学号、班级、课 联合开发网 - pudn.com...
学生成绩管理系统 所属分类:Java编程 开发工具:Java 文件大小:1204KB 下载次数:0 上传日期:2020-12-06 16:50:53 上 传 者:sunyue111 说明: 1. 能 ...
- 模糊测试软件测试_模糊测试
多年来,我震惊于可能导致Microsoft Word崩溃的损坏文件数量. 几个字节不合时宜,整个应用程序就大火了. 在较旧的,不受内存保护的操作系统上,整个计算机通常会随之崩溃. 为什么Word无法识 ...
- matlab有模糊分析,用matlab进行模糊综合评判_模糊综合评判matlab
用matlab进行模糊综合评判 考虑一个服装评判的问题,为此建立因素集U={u1,u2,u3,u4},其中u1表示花色,u2表示式样,u3表示耐穿程度,u4表示价格,建立评判集V={v1,v2,v3, ...
- mysql微服务查询问题_【mysql】微服务架构下跨服务查询的聚合有什么好的方案?...
微服务架构中,每个服务都有自己的独立数据库. 然而现在有个需求,需要生成一张实时的报表,该报表包含两个服务的数据. 如服务A,服务B.B中仅包含A的主键id作为关联. 而此报表的搜索条件包含A服务实体 ...
- c语言 mysql 查询数字_使用mysql C语言API编写程序—MYSQL数据库查询操作
//MYSQL_RES保存查询结构 MYSQL_RES* result_ = NULL; int error_code = 0;//保存错误码 char error_info[1024] = '\0' ...
- excel制作录入和查询系统_叮咚!您有一份Excel人员信息查询系统,请您查收~
叮咚!您有一份Excel人员信息查询系统,请您查收~ 打开中-- 1 2 3 open! 哦豁,瞅着还不错哦~ 下面介绍如何制作一个简易的人员信息查询系统. 数据源准备 第一步当然是准备数据源,数据源 ...
最新文章
- Oracle官方教程之Fork/Join
- android 将bitmap存为 bmp格式图片大小,Android Bitmap保存為.bmp格式,圖像轉化為黑白圖片...
- SAP Explore hidden functions in MD04
- IBM一周内拥有10万Lotus Symphony用户
- SOA:A note on RPC
- 按键精灵安卓怎么可以获取屏幕上的数字_安卓11来了,感受一下
- python参考手册 豆瓣_python之父亲自撰写两年后豆瓣评分9.8《python深度学习》PDF分享...
- JMS的两种消息模型(Point-to-Point(P2P)和Publish/Subscribe(Pub/Sub))应用举例
- web开发方法_确保进入Web开发的最快方法
- 已解决:TeamViewer使用的设备数量上限
- 一个精仿今日头条项目
- 帷幕的帷是什么意思_美术生每天坚持练习|但越画越差的原因是什么?
- ubuntu 安装 teamViewer 出现错误
- EFFECTIVE C++ (万字详解)(一)
- 访问阿里云服务器配置的ftp后,报错227 entering passive mode
- android时钟每秒 1,极简时钟
- 爬取拉钩网60条招聘信息并存入数据库
- while循环和doWhile循环
- canvas画图--流畅没有齿痕的线,图像画线
- 2019年南京大学计算机考研分数线,2019年南京大学考研复试分数线已经公布
热门文章
- 星星之火-32: 扩频码、OVSF正交扩频码、Walsh函数、信道码;扰码、伪随机码序列、m序列码、Gold码序列
- 从头学前端-CSS基础02
- 2020年数学建模国赛D题题目和解题思路
- 1 (SSM) springMVC + spring + Mybatis(MySQL)学习笔记 ------ 阶段成果笔记
- TED高赞演讲:如何掌控你的自由时间?
- 批量更改图片格式(png改为rgb)
- CHIP-seq流程学习笔记(6)-peak注释软件ChIPseeker
- SVG JS 动态赋值
- linux下安装ffmpeg的教程
- spring5.3.x源码阅读环境搭建