我們是否有一些IBM pureQuery的開源替代品來查詢Java集合框架的內存集合或複合Java對象?任何有效的開源可以替代IBM purequery來查詢內存集合?
回答
正如我的評論中提到的,我不完全確定我理解您的問題:我不確定您是否問是否存在pureQuery的OSS替代方案,以及pureQuery是否適用於Java Collection的內存DS框架,如果你想要一個可以在內存集合上工作的OSS替代品,尤其是Java集合框架。
不過,我會的git它一個嘗試...
持久層查詢語言/框架
如果你正在尋找一個開源軟件查詢 - 鹼相互作用與持久層,明顯的解決方案很簡單:
- 的Java Persistence Query Language,
- 的Hibernate Query language (HQL),
- 日e Java Data Objects (JDO) Query Language (JDOQL)。
請注意,這些也可用於內存數據庫(如H2或HSQLDb)。
集合的查詢語言/框架
不過,如果你想查詢的集合,有幾個項目,如:
the java Query Language (JQL)語言的擴展:
ArrayList<String> words = dict.getWords(Puzzle.MEDIUM); ArrayList<Integer> gaplengths = puzzle.getGapLengths(); List<Object[]> matches = selectAll( String w : words, Integer i : gaplengths | w.length() == i);
the Stack-Based Query Language for Java (sqbl4j)語言擴展:
List<Product> products = getProductList(); List<Product> expensiveInStockProducts = #{ products where unitsInStock > 0 and unitPrice > 3.00 };
-
List myObjs = getMyObjects(); Query q = new Query(); q.parse ("SELECT * FROM java.io.File WHERE name LIKE '%.java'"); QueryResults qr = q.execute (myObjs); List res = qr.getResults();
jxpath,一種不同的方法使用XPath表達式:
Address address = (Address)JXPathContext .newContext(vendor) .getValue("locations[address/zipCode='90210']/address");
的Java函數式編程庫提供了類似的功能,因爲他們給你訪問基本功能構建體
filter
,map
,collect
,transform
等...例如,有:-
Set<String> strings = buildSetStrings(); Collection<String> filteredStrings = Collections2.filter(strings, Predicates.containsPattern("^J"));
-
Array<Integer> a = array(97, 44, 67, 3, 22, 90, 1, 77, 98, 1078, 6, 64, 6, 79, 42); final Array<Integer> b = a.filter(even);
-
// with normal interfaces: List<Person> buyersSortedByAges = sort( extract( select(sales, having(on(Sale.class).getValue(), greaterThan(50000))) ), on(Sale.class).getBuyer() ), on(Person.class).getAge()); // with fluent/chainable intefaces: List<Person> buyersSortedByAges = with(sales) .retain(having(on(Sale.class).getValue(), greaterThan(50000))) .extract(on(Sale.class).getBuyer()) .sort(on(Person.class).getAge());
-
或者,也許你只是在找這個教程querying in-memory collections with pureQuery?
謝謝!如果您可以更新您的答案,那將很酷,因爲它包含許多似乎無法維護的項目。也許現在有一些新的選擇?像下面提到的CQEngine一樣... – Simon
此外CQEngine,它支持索引和查詢:CQEngine。
欲瞭解更多的背景看到類似的問題:How do you query object collections in Java (Criteria/SQL-like)?
- 1. 任何有效的開源替代了New Relic的對Java
- 2. JGo的任何開源替代品?
- 3. 任何商業/開源擺動替代?
- 4. 更有效的替代子查詢
- 5. IBM Big fix有什麼好的開源替代品?
- 6. java中的內存有效集合
- 7. 內存有效的集合類
- 8. 如何查詢Sitecore存檔以及可以查詢的內容?
- 9. 是否有任何開源免費替代WPF中的richtextbox?
- 10. ClearCase開源替代方案
- 11. 是否有任何開源工具可以從URL查看XML?
- 12. 暴露集合的高效替代品
- 13. 可以使用查詢來代替SQL Server中的表格
- 14. 替代的存在查詢
- 15. 是否有任何替代Z - 索引,並可以有相同的效果
- 16. 是否有任何替代類似的NameValueCollection集合在C#
- 17. 開源替代sun.security.rsa.RSAPublicKeyImpl
- 18. ravendb集合可以在內存中嗎?
- 19. 我有太多的查詢表查詢,任何人都可以提出一個替代方案嗎?
- 20. 任何MySQLTuner等效/替代Windows?
- 21. CU3ER開源替代
- 22. SQL查詢+更高效的替代
- 23. C#/ MVC3的任何真正的開源替代品?
- 24. 開源Enthought Python的替代
- 25. Pusher的開源替代品
- 26. 使用WebDav的Dreamweaver的任何開源替代品?
- 27. UIScrollView的開源替代品
- 28. 可以檢查一個集合或子集合是否存在?
- 29. 開源新Relic替代品
- 30. 開源替代Mosek?
我不知道是否你問,如果有一個OSS替代的pureQuery以及是否工作的pureQuery在內存中的Java集合框架的DS,如果你想要一個OSS替代方案,可以處理內存中的集合,特別是Java集合框架。 – haylem