日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

1、mybatis是什么?为什么要用mybatis?

發布時間:2023/12/3 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1、mybatis是什么?为什么要用mybatis? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

對于初學者,如果進行mybatis的學習呢?我總結了幾點,會慢慢的更新出來。首先大家需要了解mybatis是什么、用mybatis來做什么、為什么要用mybatis、有什么優缺點;當知道了為什么的時候就開始了解如何用的問題,如何使用mybatis、有幾種使用方式、各種方式的優缺點,在這個階段也會學習mybatis涉及到的一些標簽的用法;當知道了基礎用法之后,就開始接觸一些高級的用法,例如動態sql的使用、mybatis的緩存使用等;至此,在實戰項目中使用mybatis進行開發已經沒有問題了。

接下來就開始深入的研究一下mybatis這個持久層的框架,在純技術的方面進行研究,提高自己的能力。首先,大家需要了解一下mybatis的整體技術架構和工作原理;接下來,就開始了解一下mybatis各大核心組件的具體功能及其工作原理。至此,算是對mybatis的原理簡單的了解一下了,由于博主的能力有限,因此對于mybatis的框架技術研究也就到這里算結束了。

最后會了解一些其他的東西,例如:mybatis的逆向工程使用、如何開發一個mybatis插件,在這里會介紹一下mybatis的分頁實現等。

至此,mybatis也算是入門了,出去就可以和別人說,你稍微了解mybatis框架,對其也多少有一點自己的理解和看法了。


目錄

1、mybatis是什么?

2、使用mybatis可以用來做什么?為什么要用mybatis?


1、mybatis是什么?

mybatis是一款用于持久層的、輕量級的半自動化ORM框架,封裝了所有jdbc操作以及設置查詢參數和獲取結果集的操作,支持自定義sql、存儲過程和高級映射。

這句話大體是可以總結mybatis的,對于初學者來說,當看到這句話時是否會有一些問題在你腦海中產生呢?是否有如下疑問:

持久層是什么?輕量級什么概念?ORM什么意思?jdbc是什么?高級映射又是哪些映射?

接下來,一個個的解決這些問題。

持久層是什么意思呢,可以把層字去掉,持久,也就是”保持長久“的意思,他針對的是系統中數據存在的時限,而非其他。有一個基本問題大家應該知道,在內存中的數據是不持久的,如果計算機崩潰或者其他原因導致關機,數據就會丟失,但是磁盤上的數據是持久的,因此,用在持久層也就是這個框架是用來將內存中的數據寫入到磁盤中的,再具體一點,就是寫到數據庫中。所以,總結一下,框架用于持久層,就是說這個框架是和數據庫進行交互的,用于數據庫中數據操作的框架。

輕量級框架的概念可以簡單的理解為所用框架開發的程序啟動時占用的資源少、對業務代碼的侵入性不強、比較容易配置、使用和部署簡單、獨立部署即可使用無需依賴另外的框架,這種就是輕量級框架,相反的就是重量級。在互聯網飛速發展和產品迭代更新速度如此之快的今天,輕量級的框架更容易被接受,這也是spring勝出,EJB退出的原因。

ORM,Object Relational Mapping, 直接翻譯就是對象關系映射,我也沒有更好的解釋,看一下百科上是這樣介紹的”用于實現面向對象編程語言里不同類型系統的數據之間的轉換。從效果上說,它其實是創建了一個可在編程語言里使用的“虛擬對象數據庫”。面向對象是從軟件工程基本原則(如耦合、聚合、封裝)的基礎上發展起來的,而關系數據庫則是從數學理論發展而來的,兩套理論存在顯著的區別。為了解決這個不匹配的現象,對象關系映射技術應運而生”。這里簡單的可以這樣理解,java中的數據類和數據庫之間的類型系統不同,因此在使用java處理數據庫時,需要進行對應的類型轉化,而mybatis可以做這個事,可以將java中的類型一一映射到數據庫的字段類型上,因此可以將其看作是一個ORM框架。那為什么又是半自動ORM框架呢?使用mybatis,需要手動配置pojo、sql和映射關系,用戶可以自定義sql,這些sql是針對于處理數據庫的,但是這些sql需要接受一些查詢java類型的參數,或者是返回結果集封裝到java類中,這些是需要配置的,因此mybatis是一個半自動ORM框架。說到底還是因為需要寫sql,才能將數據庫中的數據映射到java類中,而不是直接根據java類獲取到對應數據庫中數據。這里多說一下,hibernate是一個全自動的ORM框架,因為只需要提供pojo和映射關系即可,后期可以直接根據pojo獲取到數據。

最后就是高級映射是什么,這里可以類比數據表之間的映射關系,也就是一對一、一對多、多對多。

2、使用mybatis可以用來做什么?為什么要用mybatis?

通過上邊對mybatis的介紹,mybatis可以做什么,想必心里有點底了,mybatis主要用于j2ee企業級應用開發的持久層,用于處理java程序與數據庫之間的交互。

在j2ee企業級應用開發中,其實并不只有mybatis,還有hibernate、ebean、jpa等其他持久層解決方案可以選擇,那么為什么要選擇使用mybatis呢?其實這個問題答案并不固定,因為,你也可以不用mybatis呀,這里就要多說一句了,互聯網技術里邊,除了真正存在bug的,其余的每一個技術都有存在的價值,畢竟存在即合理,之前不是有人說:“不選貴的,只選對的”,其實在技術選擇上也是這個道理,適合的才是最好的,在真正應用開發時,并不是用最新的技術就是最好的,要根據自己將要開發的應用的特點、成本等多個方面進行考量到底使用什么技術。

言歸正傳,那么哪種項目更加適合選擇使用mybatis呢?這里拿hibernate來比較一下,因為純介紹mybatis的有特點可能感覺不出什么,hibernate和mybatis是使用最多的兩個持久層框架,比較一下選擇時可能會更清晰,接下來將在對ORM的支持、靈活性、開發效率、適用場景四個方面進行闡述。

hibernate是全ORM框架,mybatis是半ORM框架,需要自己寫sql,其實這就是這個問題的根源,正因為特性不一樣,因此就自然而然的導致了其他地方不一樣。因為hibernate是全ORM框架,因此在映射規則確定的情況下只需要操作對應的java數據模型即可,因此用起來開發效率是高的(因為不需要自動維護一堆sql呀,只需要直接調用內置的方法即可),也正因為這樣,映射規則的確定是復雜的,前期對象之間關系固定后,后期是不容易改變的,而轉言mybatis,因為是半ORM框架,sql是自己寫的,對應的映射規則也是相應維護的,因此后期如果數據模型和之間的關系改變了,mybatis改變起來更加簡單;也正因為上述的,mybatis也更加靈活,正因為sql可以自己開發,因此在優化sql上更容易實現,而hibernate就不見得了;不過在開發效率上,在適合自己的領域,hibernate框架肯定是開發效率更勝一籌。

通過上邊說到的,其實最本質的核心也就一個,mybatis可以自己寫sql,因此靈活性更高,因此在開發一些業務經常調整的項目時可以使用,例如:電商,而hibernate則更加適合于一些業務模式固化的項目,例如:OA。

總結

以上是生活随笔為你收集整理的1、mybatis是什么?为什么要用mybatis?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。