|
J-Hi設(shè)計(jì)自己的查詢過濾器而沒有直接采用Hibernate的Criteria,是出于以下兩個(gè)原因:
1、Hibernate的Criteria的功能是很強(qiáng)大,但在使用上還是比較繁瑣。因此J-Hi想從用戶使用的簡(jiǎn)單易用性上考慮設(shè)計(jì)一款查詢過濾器。
2、J-Hi是一款跨ORM的多框架平臺(tái),不能拘泥一種只在Hibernate適用的產(chǎn)品。因此從設(shè)計(jì)角度考慮,J-Hi對(duì)于查詢過濾功能必須要有一個(gè)中間層,從而使適應(yīng)多ORM框架成為可能。
下面讓我們來分析一下對(duì)于SQL的查詢具體應(yīng)該考慮些什么
1、字段名 數(shù)據(jù)庫表的字段名
2、操作符 比如大于、小于。還會(huì)包括一些特殊的操作符如like和in
3、NO NO操作符是對(duì)操作符的補(bǔ)充,只有in和lik也會(huì)有no
4、值 對(duì)應(yīng)字段類型的具體值,如字符串就要加引號(hào),日期就要做轉(zhuǎn)換
5、空值 空值是特殊值,表述形式如IS NULL或IS NOT NULL
6、關(guān)系符 兩個(gè)查詢條件之間的關(guān)系包括三種 AND OR NOT
7、優(yōu)前級(jí) 通過左右括號(hào)來控制查詢條件的優(yōu)前級(jí)
8、通配符 如果是like操作符,在值的左側(cè)或是右側(cè)或兩側(cè)都可以通過%來控制值的匹配條件
對(duì)于Java來說,無非就是考慮如何將上述的描述通過對(duì)象化的方式實(shí)現(xiàn)
先讓我們用例說明:
1. Filter filter = FilterFactory.getSimpleFilter("name", "馬超");
it知識(shí)庫:淺談J-Hi查詢過濾器的實(shí)現(xiàn)原理,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。