`
kanwoerzi
  • 浏览: 1645831 次
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

最近在写毕设,用到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

以下是代码:

好了

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

下一篇整理出来

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics