java复杂判断_复杂的字段条件判断解析

感觉你这个condition表没什么用啊?仅仅是存储数据?如果临时的直接用json传过来就好了,如果你要持久存储的话,起码要个admin_id什么的,来标记下是谁的筛选条件。感觉效率不如直接扔到redis好点。

看你用的是Java,不过我习惯用PHP,就用PHP简单描述下我的思路吧...

写一个Filter类处理condition转换为sql。

class Filter {

public function doFilter() {

//1. 获取登录的admin_id

//2. 获取筛选条件

/**

* 数据格式例子为: [

* 'field' => 'age';,

* 'type' => 'compare',

* 'ext' => '>',

* 'value' => '2'

* ]

*/

foreach($conditions as $condition) {

// 根据type获取对应的$conditionHandle

$conditionHandle::parse($condition);

}

}

}

// Condition接口

interface Condition {

// 解析数据,返回sql片段和需要填充的数据(此处使用PDO预处理,减少SQL注入)

static function parse($data);

}

// ConditionHandle

namespace Condition;

class Compare implements Condition {

// 执行流程

public static function parse($data) {

...

return [

'sql' => 'age > ?',

'params' => [ 2 ]

];

}

}

手写的,语法错误请忽略...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值