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默认的分隔符就是空格。
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值