成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

jOOQ 項目存在的原因

開發 后端
Java和SQL在一起使用已經有很久了。SQL是一種很“古老”但很完備的技術,大家對它的理解也已很透徹。雖然在Java的運行平臺JVM之上也能建立一些新式的當代語言,但Java語言可也不算新了。

以下段落摘自 jOOQ用戶手冊的前言部分。值得思考的是,為什么你應該(或者不應該)在某特定項目中使用JOOQ。具體講,你可能正要從jOOQ 和JPA,或者jOOQ和Hibernate,或者jOOQ和QueryDSL、或者jOOQ和SLICK(對Scala而言)的兩者之中選擇其一。這里給出一些指導原則(當然會稍微有點偏向JOOQ):

jOOQ存在的理由 —— 同JPA相比

Java和SQL在一起使用已經有很久了。SQL是一種很“古老”但很完備的技術,大家對它的理解也已很透徹。雖然在Java的運行平臺JVM之上也能建立一些新式的當代語言,但Java語言可也不算新了。然后,經過了這么多年,處理SQL和Java二者之間接口的庫(Library)不斷變來變去,只留下了JPA這個大家勉強在半信半疑中接受的一個標準, 幾乎沒留下任何別的選項。

迄今為止,能夠真正把SQL看做編程語言當中具有首要地位的數據庫抽象框架或庫,少之又少。包括業界標準JPA, EJB、Hibernate、JDO、Criteria Query以及其它很多在內的框架,為將SQL的使用范圍縮減到最小采用了JPQL、HQL、JDOQL以及其它各種各樣的低級查詢語言,它們都是在企圖隱藏SQL本身。

jOOQ來填補這一空白。 

jOOQ存在的理由 —— 同LINQ相比

為了更好地將查詢作為一個概念集成到編程語言當中,其它的平臺采用了LINQ (同LINQ-to-SQL一起), Scala用的是SLICK,Java也采用了QueryDSL。通過查詢,它們可以理解對任意目標的查詢,這些目標可以是SQL、XML、集合(Collection)以及其它的異構數據存儲(Data Store)。JOOQ斷言,這樣也是走錯了方向。

在比較高級的查詢用例中(比簡單的CRUD和少量的多表查詢高級),人們還是希望能夠從SQL較強的表達能力中獲益。SQL本身的關系型特質,使得它和C#、Scala或者Java等等這類面向對象語言和非完全函數式編程語言能夠做到的事情相比,差別巨大。

要用形式化的方式表達和驗證它們產生的多表查詢和臨時表(ad-hoc)的表達式的類型非常困難。要想支持類似數據透視表(Pivot Table)、非巢套式游標(Unnested Cursor)或者僅僅是從派生表中進行任意投射(Projection)等等這樣高級的表表達式,那就更加是難上加難了。如何在非常強的面向對象類型模型之中實現這些特性,不太可能會在考慮范圍之內。

本質上講, 決定創建看上去跟SQL或者C#或者Scala、Java很像的API,就是一種確定無疑的或者偏向這個或者偏向那個平臺的決定。盡管讓SLICK以和LINQ(或者Java世界里的QueryDSL)類似的方式進行演進比較容易, 但是隨后,用以清晰表達其背后意圖的SQL特性范圍(Feature Scope)就很難再添加進來了(比如,你怎么來對Oracle的分區外聯語法進行建模?如何對ANSI/ISO SQL:1999中的分組集(Grouping Set)進行建模?怎樣才能支持標量子查詢緩存?等等問題)。

jOOQ來填補這個空白。

jOOQ很不同

SQL從來就不是一種抽象的語言。它不局限在重量級的映射器這樣狹小的范圍之內,也不隱藏關系型數據的美以及簡單性。SQL一直都不面向對象。SQL從來就不是SQL之外的任何其它東西! 

原文鏈接:http://www.oschina.net/translate/jooqs-reason-of-being

責任編輯:張偉 來源: oschina
相關推薦

2013-02-26 09:16:53

jOOQJava

2023-10-09 10:43:27

2012-02-13 09:52:56

Java

2012-01-09 10:08:10

JavajOOQ

2012-02-27 09:17:24

JavajOOQ

2012-04-10 09:29:29

jOOQJava

2012-02-01 16:08:05

JavajOOQ

2020-07-09 10:26:28

軟件項目軟件開發CIO

2011-06-30 09:25:22

軟件項目

2012-03-19 10:10:55

jOOQJava

2012-04-13 09:11:13

JavajOOQ

2011-11-28 09:16:24

Javajooq框架

2021-06-29 10:03:45

數據科學機器學習算法

2021-03-10 11:13:06

IT項目首席信息官執行顧問

2015-09-24 16:09:45

軟件開發項目原因

2019-08-14 10:41:42

人工智能系統數據

2013-05-17 09:49:24

敏捷開發開發項目項目

2012-07-24 09:23:33

項目管理產品

2018-04-09 11:20:40

數據科學項目數據

2018-07-26 05:44:45

物聯網項目物聯網IOT
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产一级片免费在线观看 | 国产午夜精品久久久 | 成人日批视频 | 日本精品一区二区 | 亚洲精品二区 | 国产精品久久久久久久久久免费看 | 久久www免费人成看片高清 | 国产一区免费 | 亚洲精品亚洲人成人网 | 国产成人99av超碰超爽 | 国产免费福利在线 | 中文字幕亚洲欧美 | 久久精品国产99国产精品亚洲 | 国产精品成人一区二区三区 | 国产精品电影在线观看 | 紧缚调教一区二区三区视频 | av手机免费在线观看 | 成人国内精品久久久久一区 | 国产亚洲一区二区精品 | 午夜精品一区二区三区在线视频 | 精品国产乱码久久久久久牛牛 | 久久亚| 日日夜夜精品免费视频 | 四虎午夜剧场 | 国产精品一区二区三区在线 | 国产98色在线 | 国产精品久久久久久久久久久久 | 久久视频一区 | 日韩中文久久 | 国产成人一区二区三区 | 久久99精品国产自在现线小黄鸭 | 亚洲成av人片在线观看 | 欧美另类视频在线 | 亚洲综合在线视频 | www国产亚洲精品 | 精品一二三区在线观看 | 欧美一级在线观看 | 国产精品久久久久久一级毛片 | 91精品一区二区三区久久久久 | 亚洲自拍偷拍av | 极情综合网 |