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默认的分隔符就是空格。
 
 

你可能感兴趣的:(java,sql,模糊查询,like)