XML布尔判定[1]——生成条件组合

这篇博客讲述了如何根据XML配置生成布尔表达式的组合,用于数据过滤。作者通过一个例子展示了如何根据XML中定义的条件(如startsWith、endWith、equals)生成不同布尔值的组合,以决定数据是否通过过滤。文章还提供了Java代码实现,生成指定数量布尔变量的所有可能组合。

 

最近在写毕设,用到MyBatis,发现里面有个动态SQL的XML判定

但是,这里不是关于MyBatis后台实现的,呵呵,那个有机会再去看看后台实现

 

翻出去年实习写的一个半成品

 

需求:

有一系列从Oracle中导出多个txt数据文件,但是新的项目需要的是这几张表中某几个字段的组合,我写了个SQL语句生成器,半成品一直放着没时间完善。即使用XML进行配置,根据配置信息提取对应项的对应值,并过滤,最后组成插入新表的SQL语句

 

过滤这个环节用到了在XML中配置布尔表达式

例如:[这个是我当时定义的SW代表startsWith   EW代表endWith   EQ代表equals]

 

 

因为数据量是十分大的

我实现的思想是

1.根据配置文件信息生成布尔表达式组合

2.写一个解析判定组合true/false的算法

3.一个组合字符串对应一个布尔值

   在文件输入时,根据判定拿到每个配置项的true/false

   找到这种组合下是否通过过滤

   通过,数据放入,否则,数据丢弃

 

 

首先,生成布尔情况组合

 

 

需求:输入XML中配置布尔判定的个数

         输出:布尔组合

 

例如,输入2

输出   00

         01

         10

         11

 

实现思想,

循环整数[0-pow(2,i)) 左闭右开       i为个数,例如输入2,有两个布尔

则循环  0   1   2   3

四个数的二进制组合刚好对应

00

01

10

11

 

 

以下是代码:

 

 

好了

生成各种组合之后,我们接下来需要写一个计算布尔表达式最终结果的算法

下一篇整理出来

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值