W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
HasorDB 是一個全功能數(shù)據(jù)庫訪問工具,提供對象映射、豐富的類型處理、動態(tài)SQL、存儲過程、 內(nèi)置分頁方言20+、 支持嵌套事務(wù)、多數(shù)據(jù)源、條件構(gòu)造器、INSERT 策略、多語句/多結(jié)果。并兼容 Spring 及 MyBatis 用法。 它不依賴任何其它框架,因此可以很方便的和任意一個框架整合在一起使用。
Hibernate 誕生于 2001 年,由 Gavin King 發(fā)布第一個版本。它是 ORM 領(lǐng)域的標志性工具,在此之前 ORM 實踐均是通過 EJB 來完成。 Hibernate 的價值在于它終結(jié)了由 EJB 所主導(dǎo)的 ORM 使用習(xí)慣,并開創(chuàng)了以 輕量化ORM 和 SpringJDBC 的新生態(tài)。同時它推動了 EJB3、和 JPA 規(guī)范的建立。
SpringJDBC 從 Spring 框架推出就存在于 Spring 體系之內(nèi)至今如此。它比 Hibernate 更加輕量和敏捷,它獨特的通過編碼的方式將 SQL 和程序結(jié)合在一起,使用起來十分輕巧。 除此之外是SpringJDBC 第一個提出了 7 種事務(wù)傳播行為。
MyBatis 是一款非常棒的數(shù)據(jù)庫訪問框架,它雖然不具備 Hibernate 強大的 ORM 能力。但別具風(fēng)格的 Mapper 文件,完美的解決了動態(tài) SQL 編寫和管理上的難題。 本質(zhì)上來講 MyBatis 是 SpringJDBC 和 Hibernate 之間的一個折中方案。對于研發(fā)管理更加友好。
圍繞 MyBatis 涌現(xiàn)出了 MyBatisPlus、MyBatis-Spring 等家喻戶曉的工具,前者基于 MyBatis 進行了更多擴展的封裝、后者整合了 Spring 提供更加友好的開發(fā)體驗。
ActiveRecord模式 簡稱 AR。最早由 Rails 提出,也屬于ORM范疇,它巧妙的將單個表看作單一的對象并提供 CURD 的基本功能,這使得數(shù)據(jù)庫的開發(fā)變得十分輕松,在一些簡單的 MVC 應(yīng)用中更是得心應(yīng)手。 雖然是 Ruby 社區(qū)的工具,但 ActiveRecord 在 Java 領(lǐng)域也有很多實現(xiàn)。比如 jOOQ,就是其中一種。
jOOQ 最有創(chuàng)造性的地方提供了特殊的 'DSL',這組 'DSL' 其實是一種語法糖。結(jié)合 Java8 Lambda 語法,這種語法糖風(fēng)格被很多后起之秀傳承下來并發(fā)揚廣大。 通過 jOOQ 的語法糖,可以編碼的方式來編寫 SQL。在感官上不亞于直接編寫 SQL,這對于有數(shù)據(jù)庫兼容需求的應(yīng)用來說更加友好。
MyBatisPlus 它來自于中國的一款開源工具,它基于 MyBatis 提供的一組更高級的封裝和拓展。比如它提供了類似 jOOQ 的語法糖、分頁查詢。 其中 HasorDB 的 LambdaTemplate 就是參考了它的實現(xiàn)。
BeetlSQL 來自于中國的一名叫 李家智 的程序員開發(fā)的數(shù)據(jù)庫訪問框架,和 MyBatisPlus 一樣它也提供了 Lambda 方式生成和執(zhí)行 SQL。HasorDB 的 LambdaTemplate 設(shè)計也同樣參考和移植了它的理念。 較為遺憾的是對于 存儲過程 沒有像 Spring 和 MyBatis 一樣提供直接支持,有這方面需求的需要依托更底層的 Connection 來實現(xiàn)。
這款框架最有趣的地方是 Mapper 文件的編寫是基于 markdown 語法為骨干,動態(tài) SQL 則采用 Beetl 模版語言來編寫。作者還提供了 SQLTemplateEngine 接口可以方便更換 Mapper 語言引擎。
sqltoy-orm 來自于中國的一款數(shù)據(jù)庫操作框架,作者在這個框架中傾注了很多心思。與大多數(shù) ORM 框架一樣它也提供了很多相似的功能及特色的 Mapper 文件。 這款框架最別具一格的地方是對于動態(tài) SQL 拼接上,巧妙的提供了一種新型語法可以極大的減少類似 MyBatis 中 if,foreach 標簽。 受到 sqltoy-orm 靈感的觸發(fā) HasorDB 提供了規(guī)則機制,并允許用戶自定義規(guī)則實現(xiàn)從而達成類似 sqltoy-orm 的效果。
另外最有趣的地方是 sqltoy-orm 中融入了很多業(yè)務(wù)場景的理解和抽象,例如:對結(jié)果集的行列轉(zhuǎn)換處理、結(jié)果集聚合計算。這是這款框架最具有新意的地方。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: