开发者社区> 问答> 正文

java实现多个不同条件的验证,请问有什么好思路?:报错

在开发过程中遇到一个需求,对于我这样的小白感觉太难了:就是在判断一条数据时:会对一条数据的每个字段设置成一个条件,有时候一个字段会有很多个条件,在开发过程中为了实现可配置的,将不同数量的条件作为一个验证规则存储在了数据库中,在使用时直接根据规则编码调用即可,但是尴尬的是在后期进行使用时,我能够读取规则并解析,但是就是有些写不来,针对多个条件是用if还是有什么算法的,请大神指点一下迷津,谢谢。

展开
收起
kun坤 2020-06-07 16:22:29 1406 0
2 条回答
写回答
取消 提交回答
  • 使用Javavalidation等框架做校验,支持不同场景下不同的验证条件

    2020-06-23 17:57:05
    赞同 展开评论 打赏
  • 是否可以用规则引擎?比如 Drools 。或者可以考虑行为树,看下行为树能否满足需求,行为树多用于游戏AI,但本质上也是各个条件的判断。

    ######回复 @别忘了带红领巾 : 抱歉!python不熟悉。######谢谢,请问python方面有什么好办法吗?######

    你会拼接字符串吧,通过读取condition生成下面的SQL即可

    select *, (age > 21 and mony >280.05 and accessTime > '2015-05-31') as cond from 资产表

    ######

    针对你这种情况,需要先写个模板,然后再跟规则配合,比如说有一个字段,首先这个字段的数据类型有N种,你就得先根据数据类型设定N中模板,然后每个数据类型有M种校验方法,你就得再针对每个模板设定好M种方法的执行流程,你这样设定好了之后,每次就很容易调用了;

    eg:有个数字类型的字段  需要校验该字段的值是否大于某个值

    那么你的调用顺序就是:  获取数字类型校验模板,选择校验值大于某个值的方法

    ######谢谢,但是我的是要多个条件,多个逻辑符。目前我想到的是两两判断,但是语句我有些写不出来。######

    条件和结果是动态配置的,数量也不一定。想通过java来实现,还有更好的思路吗?谢谢

    ######

    先  找到  判断的  优先级      哪个要先判断  哪个 最后判断 要明确。  一个判断条件大于3中情况 或者 以后还会添加 就建议所用switch       

    ######谢谢,但是多个条件之间会存再逻辑运算符呀。######

    是做参数校验还是啥?,看条件最终产生结果,以此类型结果为优先解?

    ######下面有样例,麻烦帮忙看看,谢谢!######

    你需要举个(比较完整的)例子,不知道你具体在说啥

    ######样例在下面,谢谢######

    现在有个数据表

    年龄(age : int)资产 (money : number)入网日期 (accessTime : date)
    20100.002017-03-24
    20150.002016-05-07
    21300.002015-04-03
    21240.002015-07-15
    22300.002014-12-21
    21300.002014-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之后

    的所有用户。符合条件的我有固定输出结果,不符合的也是有错误输出结果。谢谢

    2020-06-07 16:22:35
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载