2014-01-21 36 views
0

我目前在Java中爲SQL構建器購物。我的基本願望是這樣:Java中的SQL構建器

SelectBuilder sb = new SelectBuilder(source, alias); // Source can be subquery 
sb.select(column1, alias1); 
sb.select(column2, alias2); 
sb.joinWith(joinObj, joinAlias); 
sb.where(column1, operator, value) 
sb.orderBy(column1, DESC) 
// etc etc etc 

...並且,它並準備語句

我看着JOOQ和我的印象是,這是對我的口味太令人費解。我不想爲我的模式設置一些xml或xsd文件。我會允許的最多的是寫豆類。我看過了Squiggle,但它只支持SELECT而不是其他。 MyBatis不夠好,因爲它沒有完全抽象出SQL語法。我還嘗試了幾次,比如thisthat。 ()。from()。where()。etc()。etc()。etc()這樣的鏈接語法是我真正不喜歡的幾個基於Java的SQL構建器的另一件事。

無論如何,你們是否知道其他SQL Builders可能符合我的要求?我在網上搜索了兩天,但還找不到任何內容。洞察將不勝感激!

回答

0

看看這些:

http://www.querydsl.com/

https://github.com/ivanceras/fluent-sql

Hibernate也標準API具有流暢的界面。 根據我的經驗,如果查詢比從sometable中選擇更復雜,那麼這些流利的api-s使sql非常難以讀取。

+0

感謝您的意見。我已經看過QueryDSL,與JOOP並沒有太大的區別。 Hibernate是我想要遠離的東西,因爲它涉及太多的設置。我最感興趣的是某種形式的字符串生成器,它通過易於閱讀的功能根據SQL語法規則構建。我已經使用了一款非常棒的產品,但這是.NET的內置版本,並且不向公衆開放。 – user1836155

+0

我們還有一個內部的類似ORM的Java開發工具,我們計劃在2月份開放源代碼。這並不完全流利的API,但它隱藏了表和字段列映射。人們可以很容易地從

中選擇,其中不含sql。它依靠java持久性註釋來執行表和字段列映射。 當然,更復雜的查詢也可以用sql編寫。 – Priit

+0

你知道的。也許這只是我自己,但似乎很多我認識的人都擁有自己的內部ORM,這比自己的在線Java更輕便,更靈活。很奇怪。就像所有這些小開發公司重新發明輪子一樣。我自己的工作場所擁有自己的SQL Builder,比JOOP更好。我想知道爲什麼Java中的開源社區在這個領域落後了很多。 – user1836155