流口水:是否可以在数据库中保存决策 table 并像 excel 规则文件一样进行利用

Drool: Is it possible to save decision table in database and exploit just like a excel rule file

您好,我已经创建了一个规则集并保存在 excel file.I 想知道是否可以将规则保存在数据库中,格式与 excel 文件相同并从数据库中提取规则并初始化规则。

我附上了下面的规则文件。

有什么方法可以将规则以这种格式保存在数据库中并使其在代码中运行吗?

这是可能的。问题是:你从中得到了什么?您不依赖 Drools 的开箱即用机制会增加更多的复杂性。

无论如何,方法如下:

  1. 将 excel sheet 作为二进制 blob 存储在数据库中,即:
PreparedStatement st = conn.prepareStatement("update MyTable set binaryData = ? where id= 9");
st.setBinaryStream(1, new FileInputStream(xlsFile), (int)xlsFile.length());
st.execute();
  1. 从数据库中检索文件

  2. 动态构建 KieBase:

    KieServices ks = KieServices.Factory.get();
    KieFileSystem kfs = ks.newKieFileSystem().write( "src/main/resources/myFile.xls", xlsByteArray );
    KieBuilder kieBuilder = ks.newKieBuilder( kfs );
    kieBuilder.buildAll();
    KieSession ksession = ks.newKieContainer(ks.getRepository().getDefaultReleaseId()).newKieSession();