IKExpression

import java.util.ArrayList;
import java.util.List;


import org.wltea.expression.ExpressionEvaluator;
import org.wltea.expression.datameta.Variable;


import pojo.Admin;
import pojo.User;




public class HelloWord {
/**
* 连接
*/
private static String CONNECT=" +\" \"+";
/**
* 连接中的=
*/
private static String CONNECT_EQUal="+\"=\"+";
/**
* 连接中的and
*/
private static String CONNECT_AND="+ \" \"+\"and\" +\" \"+";
/**
* SQL左边部分
*/
private static String EXP_USER= "\"select * from user where \"";
public static void main(String[] args){
//组装字符串数组(Key)
User user=new User("zhangsan",123);//返回一个对象
//返回表达式
Admin admin=new Admin("username","userId");
String str=CreateExpression(admin,user);
//其中result就是返回的表达式
System.out.println("表达式: " + str);
}
/**
* 组装表达式
* @param arguement
* @param arguement1
* @return
*/
private static String CreateExpression(Admin admin,User user) {
//给表达式中的变量key和value付上下文的值
List<Variable> variables = new ArrayList<Variable>();
EXP_USER=EXP_USER+CONNECT;
EXP_USER=EXP_USER+admin.getUserId().toString();//key1
variables.add(Variable.createVariable(admin.getUserId().toString(), admin.getUserId().toString()));//arg对应表达式中的arg,字符串数组跟上面定义的一样

EXP_USER=EXP_USER+CONNECT_EQUal;
EXP_USER=EXP_USER+user.getUserId().toString();//value1
variables.add(Variable.createVariable(user.getUserId().toString(), user.getUserId().toString()));//value对应表达式中的value,字符串数组跟定义上面的一样

EXP_USER=EXP_USER+CONNECT_AND;
EXP_USER=EXP_USER+admin.getUsername().toString();//key2
variables.add(Variable.createVariable(admin.getUsername().toString(), admin.getUsername().toString()));//arg对应表达式中的arg,字符串数组跟上面定义的一样

EXP_USER=EXP_USER+CONNECT;
EXP_USER=EXP_USER+user.getUsername().toString();//value2
variables.add(Variable.createVariable(user.getUsername().toString(),user.getUsername().toString()));//value对应表达式中的value,字符串数组跟定义上面的一样

//执行表达式
Object result = ExpressionEvaluator.evaluate(EXP_USER, variables);
return result.toString();
}
}



欢迎关注公众号:Java后端技术全栈