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

jOOQ 項(xiàng)目存在的原因

開(kāi)發(fā) 后端
Java和SQL在一起使用已經(jīng)有很久了。SQL是一種很“古老”但很完備的技術(shù),大家對(duì)它的理解也已很透徹。雖然在Java的運(yùn)行平臺(tái)JVM之上也能建立一些新式的當(dāng)代語(yǔ)言,但Java語(yǔ)言可也不算新了。

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

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

Java和SQL在一起使用已經(jīng)有很久了。SQL是一種很“古老”但很完備的技術(shù),大家對(duì)它的理解也已很透徹。雖然在Java的運(yùn)行平臺(tái)JVM之上也能建立一些新式的當(dāng)代語(yǔ)言,但Java語(yǔ)言可也不算新了。然后,經(jīng)過(guò)了這么多年,處理SQL和Java二者之間接口的庫(kù)(Library)不斷變來(lái)變?nèi)ィ涣粝铝薐PA這個(gè)大家勉強(qiáng)在半信半疑中接受的一個(gè)標(biāo)準(zhǔn), 幾乎沒(méi)留下任何別的選項(xiàng)。

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

jOOQ來(lái)填補(bǔ)這一空白。 

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

為了更好地將查詢作為一個(gè)概念集成到編程語(yǔ)言當(dāng)中,其它的平臺(tái)采用了LINQ (同LINQ-to-SQL一起), Scala用的是SLICK,Java也采用了QueryDSL。通過(guò)查詢,它們可以理解對(duì)任意目標(biāo)的查詢,這些目標(biāo)可以是SQL、XML、集合(Collection)以及其它的異構(gòu)數(shù)據(jù)存儲(chǔ)(Data Store)。JOOQ斷言,這樣也是走錯(cuò)了方向。

在比較高級(jí)的查詢用例中(比簡(jiǎn)單的CRUD和少量的多表查詢高級(jí)),人們還是希望能夠從SQL較強(qiáng)的表達(dá)能力中獲益。SQL本身的關(guān)系型特質(zhì),使得它和C#、Scala或者Java等等這類面向?qū)ο笳Z(yǔ)言和非完全函數(shù)式編程語(yǔ)言能夠做到的事情相比,差別巨大。

要用形式化的方式表達(dá)和驗(yàn)證它們產(chǎn)生的多表查詢和臨時(shí)表(ad-hoc)的表達(dá)式的類型非常困難。要想支持類似數(shù)據(jù)透視表(Pivot Table)、非巢套式游標(biāo)(Unnested Cursor)或者僅僅是從派生表中進(jìn)行任意投射(Projection)等等這樣高級(jí)的表表達(dá)式,那就更加是難上加難了。如何在非常強(qiáng)的面向?qū)ο箢愋湍P椭袑?shí)現(xiàn)這些特性,不太可能會(huì)在考慮范圍之內(nèi)。

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

jOOQ來(lái)填補(bǔ)這個(gè)空白。

jOOQ很不同

SQL從來(lái)就不是一種抽象的語(yǔ)言。它不局限在重量級(jí)的映射器這樣狹小的范圍之內(nèi),也不隱藏關(guān)系型數(shù)據(jù)的美以及簡(jiǎn)單性。SQL一直都不面向?qū)ο?。SQL從來(lái)就不是SQL之外的任何其它東西! 

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

責(zé)任編輯:張偉 來(lái)源: oschina
相關(guān)推薦

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

軟件項(xiàng)目軟件開(kāi)發(fā)CIO

2011-06-30 09:25:22

軟件項(xiàng)目

2012-03-19 10:10:55

jOOQJava

2012-04-13 09:11:13

JavajOOQ

2011-11-28 09:16:24

Javajooq框架

2021-03-10 11:13:06

IT項(xiàng)目首席信息官執(zhí)行顧問(wèn)

2021-06-29 10:03:45

數(shù)據(jù)科學(xué)機(jī)器學(xué)習(xí)算法

2015-09-24 16:09:45

軟件開(kāi)發(fā)項(xiàng)目原因

2019-08-14 10:41:42

人工智能系統(tǒng)數(shù)據(jù)

2013-05-17 09:49:24

敏捷開(kāi)發(fā)開(kāi)發(fā)項(xiàng)目項(xiàng)目

2012-07-24 09:23:33

項(xiàng)目管理產(chǎn)品

2011-09-21 09:40:57

軟件項(xiàng)目

2018-04-09 11:20:40

數(shù)據(jù)科學(xué)項(xiàng)目數(shù)據(jù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 欧美精品久久久久久久久老牛影院 | 精品国产乱码久久久久久闺蜜 | 国产精品免费观看视频 | 久久精品免费观看 | 亚洲视频一区在线观看 | 中文在线a在线 | 日韩视频国产 | 国产精品揄拍一区二区久久国内亚洲精 | 精品国产视频 | 精品麻豆剧传媒av国产九九九 | 亚洲中午字幕 | 国产三级在线观看播放 | 久久偷人 | 亚洲成人国产精品 | 欧美一区二区在线播放 | 国产精品久久久久aaaa九色 | 日韩在线不卡视频 | 在线观看免费av网站 | 久久久国产一区 | 91av视频在线播放 | 久久国产精品视频 | 亚洲a级 | 国产成人短视频在线观看 | 亚洲激情在线视频 | 日韩一区二区三区在线 | 日韩精品在线免费观看视频 | 精品欧美一区免费观看α√ | 午夜国产一级 | 羞视频在线观看 | 亚洲av毛片 | 手机看片在线播放 | 99re在线视频 | 欧美三级在线 | 欧美一级二级视频 | 成年人在线视频 | 国产一区二区三区在线 | 欧美一级在线观看 | 在线视频 欧美日韩 | 一本一道久久a久久精品蜜桃 | 亚洲精品日韩一区二区电影 | 国产九九九九 |