MyBatis框架簡(jiǎn)介
本文是我學(xué)習(xí) MyBatis 的學(xué)習(xí)筆記和心得,也是我的第一篇技術(shù)文章,可能理解的比較淺顯,也難免存在一些錯(cuò)誤。如果您喜歡這篇文章,可以分享,并注明來(lái)源;如果您有疑問(wèn)、意見(jiàn)或建議,歡迎留言批評(píng)指正,謝謝。
初見(jiàn) MyBatis 就被它簡(jiǎn)介的風(fēng)格所吸引了,大概是喜歡這種簡(jiǎn)單易上手的輕量級(jí)框架吧,功能強(qiáng)大卻并不復(fù)雜。
MyBatis 是一款在持久層使用的 SQL 映射框架,它可以將 SQL 語(yǔ)句單獨(dú)寫(xiě)在 XML 配置文件中,或者用帶有注釋的 Mapper 映射類(lèi)來(lái)完成 SQL 類(lèi)型到 Java 類(lèi)型的映射。與 Hibernate 不同,MyBatis 不屬于完全的 ORM 框架,它不能將不同數(shù)據(jù)庫(kù)的影響隔離開(kāi),仍然需要自己寫(xiě) SQL 語(yǔ)句,但是卻可以靈活地控制 SQL 語(yǔ)句的構(gòu)造,將 SQL 語(yǔ)句的編寫(xiě)和程序的運(yùn)行分離開(kāi),使用方便快捷。
使用時(shí)只需要在 classpath 中添加 mybatis-x.x.x.jar 依賴(lài)即可。使用 Maven 構(gòu)建如下:
<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>x.x.x</version> </dependency>
運(yùn)行 MyBatis 的基本步驟為:
- 使用 SqlSessionFactoryBuilder 從 XML 配置文件或 Configuration 對(duì)象創(chuàng)建 SqlSessionFactory
- 從 SqlSessionFactory 中獲取 SqlSession
- 使用 SqlSession 執(zhí)行 SQL 語(yǔ)句并將獲得的結(jié)果集映射到 Java 對(duì)象。
可以看出,最關(guān)鍵的部分就是根據(jù)配置獲得 SqlSessionFactory 實(shí)例和 SQL 映射。我們將話費(fèi)大部分精力來(lái)編寫(xiě)配置文件和映射文件(包括 XML 配置文件或 Java 類(lèi)),然后調(diào)用 SqlSession 的 API 即可完成對(duì)數(shù)據(jù)庫(kù)的相關(guān)操作。相比于 JDBC 來(lái)說(shuō),MyBatis 封裝了對(duì)復(fù)雜 SQL 語(yǔ)句的編寫(xiě),將其從 Java 類(lèi)中分離出來(lái),易于維護(hù)。另外 MyBatis 還支持事物和連接池,以及與其他框架的整合功能。
以上作為對(duì) MyBatis 的簡(jiǎn)要介紹和我的理解,詳細(xì)內(nèi)容在后續(xù)文章中會(huì)繼續(xù)學(xué)習(xí)和探索。
希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!
- MyBatis入門(mén)學(xué)習(xí)教程(一)-MyBatis快速入門(mén)
- SpringMVC+MyBatis聲明式事務(wù)管理
- springboot與mybatis整合實(shí)例詳解(完美融合)
- Mybatis實(shí)戰(zhàn)教程之入門(mén)到精通(經(jīng)典)
- MyBatis批量插入(insert)數(shù)據(jù)操作
- Java簡(jiǎn)單實(shí)現(xiàn)SpringMVC+MyBatis分頁(yè)插件
- 深入淺析mybatis oracle BLOB類(lèi)型字段保存與讀取
- mybatis的動(dòng)態(tài)sql詳解(精)
- 解決springmvc+mybatis+mysql中文亂碼問(wèn)題
- 詳解MyBatis直接執(zhí)行SQL查詢(xún)及數(shù)據(jù)批量插入
相關(guān)文章
Java synchronized底層的實(shí)現(xiàn)原理
這篇文章主要介紹了Java synchronized底層的實(shí)現(xiàn)原理,文章基于Java來(lái)介紹 synchronized 是如何運(yùn)行的,內(nèi)容詳細(xì)具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-05-05java調(diào)用process線程阻塞問(wèn)題的解決
這篇文章主要介紹了java調(diào)用process線程阻塞問(wèn)題的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06Spring Boot如何通過(guò)java -jar啟動(dòng)
大家開(kāi)發(fā)的基于Spring Boot 的應(yīng)用 ,jar形式, 發(fā)布的時(shí)候,絕大部分都是使用java -jar 啟動(dòng)。本文主要介紹了Spring Boot如何通過(guò)java -jar啟動(dòng),一起來(lái)了解一下2021-05-05Java數(shù)據(jù)結(jié)構(gòu)與算法之棧(動(dòng)力節(jié)點(diǎn)Java學(xué)院整理)
這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)與算法之棧,棧是先進(jìn)后出的數(shù)據(jù)的結(jié)構(gòu),本文通過(guò)文字說(shuō)明與實(shí)例代碼相結(jié)合的形式給大家介紹的非常詳細(xì),需要的朋友跟著小編一起學(xué)習(xí)吧2017-04-04Java從源碼看異步任務(wù)計(jì)算FutureTask
這篇文章主要介紹了Java從源碼看異步任務(wù)計(jì)算FutureTask,F(xiàn)utureTask就能夠很好的幫助我們實(shí)現(xiàn)異步計(jì)算,并且可以實(shí)現(xiàn)同步獲取異步任務(wù)的計(jì)算結(jié)果,具體是怎樣實(shí)現(xiàn)的,下面我們就一起來(lái)學(xué)習(xí)下面文章的具體內(nèi)容吧2022-04-04mybatis實(shí)現(xiàn)一對(duì)一關(guān)聯(lián)映射實(shí)例代碼
這篇文章主要給大家介紹了關(guān)于mybatis實(shí)現(xiàn)一對(duì)一關(guān)聯(lián)映射的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11