关于java运行mysql中一小段脚本
需要执行mysql中的一段脚本,获取具体的值.然后将这段sql拼入到sql中.
//需要执行的脚本if('[email protected]'='',1=1,cus.buyer_emaillike'%[email protected]%')
处理方式.
1.先将条件,返回结果1,返回结果2截取出来.
2.再将放到javascript中,运行一下.
ScriptEngineengine=newScriptEngineManager().getEngineByName("javascript");
Compilablecompilable=(Compilable)engine;
Bindingsbindings=engine.createBindings();//println(op1);
Stringscript="functionexeSql(op1,res1,res2){if(eval(op1)){returnres1;}else{returnres2;}}exeSql(op1,res1,res2);";//定义函数并调用
CompiledScriptJSFunction=compilable.compile(script);//解析编译脚本函数
bindings.put("op1","'[email protected]'=='[email protected]'");
bindings.put("res1","1=1");
bindings.put("res2","cus.buyer_emaillike'%[email protected]%'");
Objectresult=JSFunction.eval(bindings);
System.out.println(result);//调用缓存着的脚本函数对象,Bindings作为参数容器传入
结果就出来了.
js中的eval作用非常大,将我传入的字符串,转化为需要执行的脚本语言了.很强大.