应用场景简化描述
现在有个用户Person,包含int age, BigDecimal money,java.util.Date accessTime等字段,对应于用户表person:
年龄(age : int)
资产 (money : number)
入网日期 (accessTime : date)
20
100.00
2017-03-24
20
150.00
2016-05-07
21
300.00
2015-04-03
21
240.00
2015-07-15
22
300.00
2014-12-21
21
300.00
2014-12-21
另外,有一张条件表,condition:
字段名(fieldName : varchar)
运算符(oper : varchar)
阈值 (threshold : varchar )
age
=
21
money
>
280.05
accessTime
>
2015-05-31
条件表condition用来配置过滤用户person的条件,表示要过滤出
年龄等于21岁
资产大于280.05
入网日期在 2015-06-01之后
的所有用户。
其中,oper可取的值有 = , < , > , >= , <= , in , between
如果oper为in或between, 则阈值为多个,用逗号隔开。
问题
现在,对于不同的字段,在条件表condition里都是varchar类型,而在person表中,却有不同的类型。
而且,条件表里的条件是从web系统页面上,由用户配置的;也就是说,条件的个数不确定,配置的字段,运算符,阈值也都是不确定的。
问: 如何才能使用java代码,先将所有用户以及条件查出来,然后遍历每个用户,对于每个用户,遍历每个条件,怎样才能正确的判断该用户通过所有的条件检查,得出通过条件筛选的用户列表?(上边的场景是实际场景简化后的,请不要给出拼接sql,通过sql过滤的答案)
是不是可以把person的记录生成xml文件,条件生成xsd文件,用xsd去校验xml ??
添加回答
举报
0/150
提交
取消