package com.meidusa.amoeba.sqljep; import java.util.Date; import java.util.HashMap; import java.util.Map; import com.meidusa.amoeba.route.AbstractQueryRouter; import com.meidusa.amoeba.sqljep.function.Comparative; import com.meidusa.amoeba.sqljep.function.ComparativeAND; import com.meidusa.amoeba.sqljep.function.ComparativeBaseList; import com.meidusa.amoeba.sqljep.variable.Variable; public class Main { /** * @param args * @throws ParseException */ public static void main(String[] args) throws ParseException { ComparativeBaseList idAnd = new ComparativeAND(Comparative.LessThanOrEqual,8); idAnd.addComparative(new Comparative(Comparative.Equivalent,4)); Comparable<?>[] row = {idAnd,new Comparative(Comparative.GreaterThanOrEqual,50),new Comparative(Comparative.GreaterThanOrEqual,new java.util.Date()),"wwe"}; HashMap<String,Integer> columnMapping = new HashMap<String,Integer>(); columnMapping.put("ID",0); columnMapping.put("SUM",1); columnMapping.put("SALE_DATE",2); columnMapping.put("name",3); final Map<String,Variable> valMap = new HashMap<String,Variable>(); valMap.put("age", new Variable(){ public Comparable<?> getValue() { return "223"; } }); valMap.put("sysdate", new Variable(){ public Comparable<?> getValue() { return new Date(); } }); System.out.println("wwe".hashCode()%500); RowJEP sqljep = new RowJEP("ID in (1,2,4,3,8) and hash(ID)>=4 and 1=1 and SUM =100 and trunc(SALE_DATE) < to_date('2009-04-03','yyyy-mm-dd') and abs(hash(name))%500<300" ); sqljep.parseExpression(columnMapping,valMap,AbstractQueryRouter.ruleFunTab); long start = System.currentTimeMillis(); for(int i=0;i<2;i++){ try { System.out.println(sqljep.getValue(row)); //sqljep.getValue(row); } catch (ParseException e) { e.printStackTrace(); } } System.out.println("totle:"+(System.currentTimeMillis() -start)); } }