Querydsl 是一個通用的查詢框架,專注於通過Java API構建類型安全的SQL查詢說說Querydsl的優勢吧:
1. Querydsl支持代碼自動完成,因為才純Java API編寫查詢,因此主流Java IDE對起的代碼自動完成功能支持幾乎可以發揮到極致(因為是純Java代碼,所以支持很好)
2. Querydsl幾乎可以避免所有的SQL語法錯誤(當然用錯了Querydsl API除外,因為不寫SQL了,因此想用錯也難)
3. Querydsl采用Domain類型的對象和屬性來構建查詢,因此查詢絕對是類型安全的,不會因為條件類型而出現問題
4. Querydsl采用純Java API的作為SQL構建的實現可以讓代碼重構發揮到另一個高度(這也是Criteria讓筆者十分喜愛的主要原因之一)
5. Querydsl的領一個優勢就是可以更輕松的進行增量查詢的定義
說了這么多之后,各位看官是否對Querydsl已經產生了興趣呢?至少筆者對這個很有創意的小工具十分感興趣,因此筆者在使用HQL構建查詢的時候也曾經試圖編寫一個簡單的查詢條件構造器。現在看來Querydsl不但已經實現了筆者的想法而且其高度遠在筆者至上了。不過Querydsl雖然好也需要開發團隊對起使用進行一定的考量。
* 首先Querydsl並不使用現有的任何POJO進行查詢構建,而是根據現有的配置生成對應的Domain Model進行查詢構建,因此對於使用Hibernate的朋友回多出一組Model來
* 其次開發團隊需要熟悉和了解Querydsl API,或者這不是一個十分漫長的過程,但畢竟需要學習成本,對於一個使用成熟框架的開發團隊而言,這些是否需要。
不過對於筆者來說Querydsl帶來的並不僅僅是使用上的方便,更是對查詢理念上的一個改觀,同時也是對目前各種ORM框架查詢語言的一個升華吧。可能每個ORM框架無論是Hibernate還是EJB或者JDO都有着自己的一套查語言和語法的解析,筆者也覺得他們做的足夠好,但如果想使用相同的語法風格在不同的ORM框架上進行操作呢?或者Querydsl會給出我們一個更好的解決方案吧。
想了解更多關於Querydsl的內用可以去官方網址看看,官方的文檔還是很不錯的說。
from:http://xiexiejiao.cn/java/querydsl-1-9-5-release-download.html
這里有一篇Querydsl使用的例子:http://blog.csdn.net/liuchuanhong1/article/details/70244261?utm_source=gold_browser_extension