`

sql语句实现简单模糊搜索(java)

阅读更多
1、利用StringTokenizer将输入的空格分隔的字符串识别为多个独立的字符串;
2、利用distinct关键字过滤重复的项;
3、利用like关键字实现数据库字符串过滤,配合like关键字使用是%表示任意适配的字符。
 
具体源代码:
import java.util.StringTokenizer;

public class SQLStringTester {

 public static void main(String[] args) {
  String sql = "select distinct id from dbName.tableName where";
  sql = addTerms ( sql, "Java 字符串 空格分隔" );
  System.out.println(sql);
 }

 
 public static String addTerms(String sql, String terms ) {
  String re = new String(sql);
  String addon_left = " value like '%";
  String addon_right = "%'";
  String addon_end = ";";
  String addon_or = " or";
 

  StringTokenizer st = new StringTokenizer(terms);
  for ( int i=0; st.hasMoreTokens(); i++ )
   re += (i!=0?addon_or:"") + addon_left + st.nextToken() + addon_right ;
  
  re += addon_end;
  
  return re;
 }
}
 
 
另外一种方法则是使用String.split(String token)函数,例如,把上例中的for循环换成:
  String[] result = terms.split(" ");
  for ( int i=0; i<result.length; i++ )
   re += (i!=0?addon_or:"") + addon_left + result[i] + addon_right ;
 
需要注意的是:split函数必须指名分割符,而StringTokenizer默认的分隔符就是空格。
 
 
分享到:
评论

相关推荐

    jsp+javabean模糊查询

    基于jsp+javabean的模糊查询,利用“%query%”sql语句,现实模糊查询。 能够有效对数据库进行有效查询。

    多条件模糊匹配搜索--模糊查询

    本文面对的是“多条件模糊匹配搜索”,理解了多条件的,单一条件搜索也不过小菜一碟了。一般来讲,有两 种方法进行多条件搜索:枚举法和递进法。搜索条件不太多时(n),可使用枚举法,其语句频度为2的n次 方,成指数...

    Access数据库简易查询程序(Java)

    用Java写的用于查询Access数据库的简易程序,用户可以自己输入sql查询语句,程序会相应的返回查询结果,类似sql查询器,但是功能没那么强大。查询语句出错时,会自动调用默认查询。运行前需要先建立一个名为books的...

    实现按关健字模糊查询,并按匹配度排序的SQL语句

    代码如下:IF OBJECT_ID(‘TB’)IS NOT NULL DROP TABLE TB GO CREATE TABLE tb (ID INT IDENTITY(1,1),VALUE NVARCHAR(100)) INSERT tb SELECT N’中国’ UNION ALL SELECT N’中国人’ UNION ALL SELECT N’中国...

    Mybatis自定义拦截器,对模糊查询传值的特殊字符(\,_,%)统一进行转义处理的代码

    代码包含: EscapeUtil.java:特殊字符(\,_,%)转义工具类 MyQueryInterceptor.java: Mybatis自定义拦截器 注意:该拦截器只支持QueryWrapper的like方法,serviceImpl层传全角模糊查询(%%) mapper或xml层的全角模糊查询(%...

    基于Java的共享学习资源系统的设计与实现【附源码】

    JDBC是一种用于执行SQL语句的Java API,有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。本系统将采用JDBC技术实现Java程序与SQL Server之间的链接,可以通过程序来对数据库进行学生共享学习资源、学生查询...

    1000道 互联网Java架构师面试题.pdf和JAVA核心知识整理.zip

    8、 模糊查询 like 语句该怎么写? 9、通常一个 Xml 映射文件,都会写一个 Dao 接口与之对应,请问,这个 Dao 接口的工作原理是什么?Dao 接口里的方法,参数不同时,方法能重载吗? 10、Mybatis 是如何进行分页的...

    java面试800题

    Q0027 哪些SQL语句在执行时是自动提交的? 数据定义语言DDL是自动提交的。 Q0028 索引对数据库的影响? 提高查询速度 Q0029 主外键有什么关系? 外键是从某个表的一个字段指向另外一个表的主健字段,两个字段的类型...

    2009达内SQL学习笔记

    SQL语句是由简单的英语单词构成;这些英语单词称为关键字/保留字,不做它用。SQL由多个关键字构成。 SQL语句由子句构成,有些子句是必须的,有些是可选的。 在处理SQL语句时,其中所有的空格都被忽略(空格只用来...

    Java课程设计--个人通讯录管理系统方案.doc

    《JAVA程序设计》 课程设计说明书 班级: 学号:: 设计题目:个人通讯录管理系统 设计时间:至 指导教师: 评 语: 评阅成绩:评阅教师: 目 录 1 引 言1 1.1课程设计选题1 1.2课程设计的目的1 1.3本选题的设计背景1 2 ...

    基于java的企业级应用开发:RESTful支持.ppt

    模糊查询的实现非常简单,只需在映射文件中通过元素编写相应的SQL语句 * * * RESTful支持 LOREM IPSUM DOLOR 14.2.1 什么是RESTful 什么是RESTful? RESTful也称之为REST,是英文“Representational State Transfer...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    书名:《Java开发实战1200例(第I卷)》(清华大学出版社.李钟尉,陈丹丹) PDF格式扫描版,全书分为24章,共817页。2011年1月出版。 全书压缩打包成4部分,这是第3部分 注:本系列图书的第I、II卷再版时均相应改名为...

    FREEZE是一个java实体层高性能分布式存储框架

    FREEZE是一个java实体层高性能分布式存储框架,分布式存储可通过简单的配置完成,开发人员可不关心数据存储位置及数据库类型差异;支持OR自动映射;...支持自定义sql语句;配置简单、代码量少、易上手、开发快速。

    java范例开发大全源代码

    第1篇 Java编程基础  第1章 Java开发环境的搭建(教学视频:9分钟) 2  1.1 理解Java 2  1.2 搭建Java所需环境 3  1.2.1 下载JDK 3  1.2.2 安装JDK 4  1.2.3 配置环境 5  1.2.4 测试JDK配置...

    java范例开发大全

    第1篇 Java编程基础 第1章 Java开发环境的搭建(教学视频:9分钟) 2 1.1 理解Java 2 1.2 搭建Java所需环境 3 1.2.1 下载JDK 3 1.2.2 安装JDK 4 1.2.3 配置环境 5 1.2.4 测试JDK配置是否成功 7 实例1 开发第一个Java...

    Java范例开发大全 (源程序)

    第1篇 Java编程基础  第1章 Java开发环境的搭建(教学视频:9分钟) 2  1.1 理解Java 2  1.2 搭建Java所需环境 3  1.2.1 下载JDK 3  1.2.2 安装JDK 4  1.2.3 配置环境 5  1.2.4 测试JDK配置是否成功 7...

Global site tag (gtag.js) - Google Analytics