当前位置: 代码迷 >> Web前端 >> jqgird 单字段查询的多种查询模式的后台实现
  详细解决方案

jqgird 单字段查询的多种查询模式的后台实现

热度:467   发布时间:2012-09-02 21:00:34.0
jqgird 单字段查询的多种查询方式的后台实现

? ? ? 近期在研究jqgrid,在里面涉及到了单字段查询。里面用到的查询方式有很多,比如等于、不等于、包含等等,都需要在后台实现。个人感觉这个后台的实现能够用到很多地方,所以在此保留,以供后用。请勿见笑。

?

public static String getOperation(String sField, String sOper,String sValue){
		if(sOper==null || sOper.trim().length() ==0)
			return "";
		String result = "";
		if(sOper.trim().equals("eq"))   	//等于
			result = sField + "='" + sValue +"' ";
		else if(sOper.trim().equals("ne"))  //不等于
			result = sField + " != '"+ sValue+"' ";
		else if(sOper.trim().equals("lt"))	//小于
			result = sField + " < '"+ sValue+"' ";
		else if(sOper.trim().equals("le"))	//小于等于
			result = sField + " <= '"+ sValue+"' ";
		else if(sOper.trim().equals("gt"))	//大于
			result = sField + " > '"+ sValue+"' ";
		else if(sOper.trim().equals("ge"))	//大于等于
			result = sField + " >= '"+ sValue+"' ";
		else if(sOper.trim().equals("bw"))	//以...开始
			result = sField + " LIKE '"+ sValue+"%' ";
		else if(sOper.trim().equals("bn"))	//不以...开始
			result = sField + " NOT LIKE '"+ sValue+"%' ";
		else if(sOper.trim().equals("cn")){	//包括
			String[] sv = sValue.split(",");
			String svString = "";
			for(int i = 0 ;i<sv.length; i ++){
				svString += "%"+sv[i]+"%";
			}
			result = sField + " LIKE '" +svString+"'";
		}
		else if(sOper.trim().equals("nc")){//不包含
			String[] sv = sValue.split(",");
			String svString = "";
			for(int i = 0 ;i<sv.length; i ++){
				svString += "%"+sv[i]+"%";
			}
			result = sField + " NOT LIKE '" +svString + "'";
		}
		else if(sOper.trim().equals("nu")) //is null
			result = sField + " IS NULL ";
		else if(sOper.trim().equals("nn")) //IS NOT NULL
			result = sField + " IS NOT NULL ";
		else if(sOper.trim().equals("ew")) // 以... 结束
			result = sField + " LIKE '%"+ sValue+"' ";
		else if(sOper.trim().equals("en"))
			result = sField + " NOT LIKE '%" +sValue+"' ";
		return  result;
	}