深入探索Jess:从Web应用到Java嵌入的全面指南
1. Jess查询与订单管理
Jess查询可包含变量声明,其作用是列出查询的参数。在运行查询函数时,所提供的参数会与模式中同名的变量绑定,这样就能在运行时指定查询模式要匹配的具体值。
例如,列出订单中所有商品的查询:
(defquery items-for-order
(declare (variables ?order))
(line-item (order-number ?order) (part-number ?part))
(product (part-number ?part)))
此查询返回的每个匹配项都会包含一个商品编号事实和相关的产品事实,这些信息可用于计算订单总价、打印发货清单等。
推荐订单查询与之类似:
(defquery recommendations-for-order
(declare (variables ?order))
(recommend (order-number ?order) (part-number ?part))
(product (part-number ?part)))
这里的 ?part
是内部变量,仅用于在查询模式中进行匹配。
在Web应用里,每个订单都需有唯一编号。传统做法是在数据库中使用存储过程,而在Jess中,可使用