关于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作用非常大,将我传入的字符串,转化为需要执行的脚本语言了.很强大.

相关推荐