想实现一个sql查询条件and和or的组合,有如下要求:通过设计一个接口Filter以 及 它 的 三 个 实 现 类AttributeFilter、LogicAndFilter、LogicOrFilter利用Composite设计模式把任何查询条件组织成一棵二叉树,利用Visitor设计模式通过遍历二叉树就可以还原查询条件,Filter的接口定义为
public interface Filter{
public String getWhereClause()
public void acceptVisitor(FilterVisitor visitor)
}如果能做到简单的sql查询中的where 条件中的and 和or ?
谢谢!
public interface Filter{
public String getWhereClause()
public void acceptVisitor(FilterVisitor visitor)
}如果能做到简单的sql查询中的where 条件中的and 和or ?
谢谢!
遇到()号的处理:把括号里的句子提出,单独先构成一棵2叉树;
把这个2叉树当成一个整体加到原句子生成树中!还有注意括号匹配问题~over
那么属性应该如何放置呢?也就是字段该如何放置?还能详细点吗?十分感谢!
testNode left=null;
testNode right=null;
String opr=null;//不是叶子节点,存放逻辑算术运算
String val=null;//是叶子节点,存放字段名
}//ps: String opr和String val其实可以合并!
or and
a b c d
其实就是 a or b and ( c and d)String val=null;//是叶子节点,存放字段名,应该是原子布耳表达式