本篇内容介绍了“sql规则引擎设计是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
创新互联公司2013年至今,先为太子河等服务建站,太子河等地企业,进行企业商务咨询服务。为太子河企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
最近用到了规则引擎 ,简单做一个总结。 规则,说白了,就是,现状(fact)怎么样,如果(condition)怎么样,那么(action)怎么样. 规则引擎使用了rete算法,我这边使用的是drools, 总之归绕一个核心,生成drl文件,其他的都有drools来执行。
为了方便设计,对业务进行了统一的封装OP(入参:param,实体:body,出参:res),执行器Exector,这样就可以少引入class。 一个标签表,一个规则引擎表。 标签里有各种数据,变量,实例变量,关系运算,指令。
条件直接生成
行为
sql填充:把sql给规则引擎。sql是可以带参数的,使用的是变量库里的参数。
$op.setBody
{
"$op.setBody": " select lock_on_active from t_rule_engine where id='${id}' "
}
查询数组:查询sql,得到数组。
Executor.sqlList($op);
{"Executor.sqlList ($op);":""},
查询数值:查询sql得到数字
Executor.sqlLong($op);
{"Executor. sqlLong($op);":""},
查询map:查询sql得到map
Executor.sqlMap($op);
{"Executor. sqlMap($op);":""},
查询字符:查询sql得到字符串。
Executor.sqlStr($op);
{"Executor. sqlStr($op);":""},
触发规则:重新在规则文件里执行。
update($op);
{"update($op);":""},
变量copy:把执行的结果放到入参当条件。
Executor.paramCopy
{"Executor.paramCopy":["data","data1"]} //把查询结果data的值,赋值到参数里data1
变量赋值:把一个常量值赋值给变量,这个常量,也可以是实例变量库里的值。
Executor.let
{"Executor.let":["data","cheitemContent"]} //把 data 赋值给参里里的 cheitemContent
目前,只有“sql填充”、“变量copy”是有参之外,其他都是无参动作。
最终生成规则文件drl
“sql规则引擎设计是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!