|
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查詢過濾器的實現原理,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。