|
J-Hi设计自己的查询过滤器而没有直接采用Hibernate的Criteria,是出于以下两个原因:
1、Hibernate的Criteria的功能是很强大,但在使用上还是比较繁琐。因此J-Hi想从用户使用的简单易用性上考虑设计一款查询过滤器。
2、J-Hi是一款跨ORM的多框架平台,不能拘泥一种只在Hibernate适用的产品。因此从设计角度考虑,J-Hi对于查询过滤功能必须要有一个中间层,从而使适应多ORM框架成为可能。
下面让我们来分析一下对于SQL的查询具体应该考虑些什么
1、字段名 数据库表的字段名
2、操作符 比如大于、小于。还会包括一些特殊的操作符如like和in
3、NO NO操作符是对操作符的补充,只有in和lik也会有no
4、值 对应字段类型的具体值,如字符串就要加引号,日期就要做转换
5、空值 空值是特殊值,表述形式如IS NULL或IS NOT NULL
6、关系符 两个查询条件之间的关系包括三种 AND OR NOT
7、优前级 通过左右括号来控制查询条件的优前级
8、通配符 如果是like操作符,在值的左侧或是右侧或两侧都可以通过%来控制值的匹配条件
对于Java来说,无非就是考虑如何将上述的描述通过对象化的方式实现
先让我们用例说明:
1. Filter filter = FilterFactory.getSimpleFilter("name", "马超");
it知识库:浅谈J-Hi查询过滤器的实现原理,转载需保留来源!
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。