国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

國內(nèi)b2b電商平臺seo專業(yè)課程

國內(nèi)b2b電商平臺,seo專業(yè)課程,正規(guī)的網(wǎng)站建設(shè),網(wǎng)站瀏覽思路MyBatis簡介 本節(jié)首先會介紹什么是ORM、什么是MyBatis、MyBatis的特點(diǎn)以及核心概念,最后介紹MyBatis是如何啟動(dòng)、如何加載配置文件的? 1.什么是ORM ORM(Object Relational Mapping,對象關(guān)系映射)是為了解決面向?qū)ο蟆?article class="baidu_pl">

MyBatis簡介

本節(jié)首先會介紹什么是ORM、什么是MyBatis、MyBatis的特點(diǎn)以及核心概念,最后介紹MyBatis是如何啟動(dòng)、如何加載配置文件的?

1.什么是ORM

ORM(Object Relational Mapping,對象關(guān)系映射)是為了解決面向?qū)ο笈c關(guān)系數(shù)據(jù)庫存在的互不匹配現(xiàn)象的一種技術(shù)。簡單地說,ORM通過使用描述對象和數(shù)據(jù)庫之間映射的元數(shù)據(jù)將程序中的對象自動(dòng)持久化到關(guān)系數(shù)據(jù)庫中。

當(dāng)我們開發(fā)應(yīng)用程序時(shí),需要編寫大量的數(shù)據(jù)訪問層代碼,用來操作數(shù)據(jù)庫中的數(shù)據(jù),這些代碼要么是大量重復(fù)的代碼,要么操作特別煩瑣。針對這些問題,ORM提供了完善的解決方案,簡化了將對象持久化到關(guān)系數(shù)據(jù)庫中的操作。

ORM框架的本質(zhì)是簡化編程中操作數(shù)據(jù)庫的編碼,Java領(lǐng)域發(fā)展到現(xiàn)在,ORM框架層出不窮,但是,基本上還是Hibernate和Mybatis兩個(gè)比較流行并被廣泛使用。

Hibernate:全自動(dòng)的框架,強(qiáng)大、復(fù)雜、笨重、學(xué)習(xí)成本較高。

Mybatis:半自動(dòng)的框架(需要開發(fā)者了解數(shù)據(jù)庫),必須要自己寫SQL。

Hibernate宣稱可以不用寫一句SQL,而MyBatis以動(dòng)態(tài)SQL見長,兩者各有特點(diǎn),開發(fā)者可以根據(jù)需求靈活使用。

有一個(gè)有趣的現(xiàn)象:傳統(tǒng)企業(yè)大多喜歡使用Hibernate,而互聯(lián)網(wǎng)行業(yè)則通常使用MyBatis。

2.什么是MyBatis

MyBatis是一款優(yōu)秀的數(shù)據(jù)持久層ORM框架,被廣泛地應(yīng)用于應(yīng)用系統(tǒng)。最早是Apache的一個(gè)開源項(xiàng)目iBatis,2010年這個(gè)項(xiàng)目由Apache Software Foundation遷移到了Google Code,并且改名為MyBatis,2013年11月又遷移到了GitHub。

MyBatis支持定制化的SQL、存儲過程和高級映射,能夠非常靈活地實(shí)現(xiàn)動(dòng)態(tài)SQL,可以使用簡單的XML或注解來配置和映射原生信息,能夠輕松地將Java的POJO(Plain Ordinary Java Object,普通的Java對象)與數(shù)據(jù)庫中的表和字段進(jìn)行映射關(guān)聯(lián)。

MyBatis作為一款使用廣泛的開源軟件,它的特點(diǎn)如下:

易學(xué)易用,沒有任何第三方依賴。

SQL被統(tǒng)一提取出來,便于統(tǒng)一管理和優(yōu)化。

SQL和代碼解耦,將業(yè)務(wù)邏輯和數(shù)據(jù)訪問邏輯分離,使系統(tǒng)的設(shè)計(jì)更清晰,更易維護(hù),更易進(jìn)行單元測試。

靈活動(dòng)態(tài)的SQL,支持各種條件來動(dòng)態(tài)生成不同的SQL。

提供映射標(biāo)簽,支持對象與數(shù)據(jù)庫的ORM關(guān)系映射。

提供對象關(guān)系映射標(biāo)簽,支持對象關(guān)系組件維護(hù)。

3.MyBatis的核心概念

MyBatis由Mapper配置文件、Mapper接口、執(zhí)行器、會話等組件組成。下面就來介紹這些非常重要的組件和概念。

1)Mapper配置文件:可以使用基于XML的Mapper配置文件來實(shí)現(xiàn),也可以使用基于Java注解的MyBatis注解來實(shí)現(xiàn),甚至可以直接使用MyBatis提供的API來實(shí)現(xiàn)。

2)Mapper接口:是指自定義的數(shù)據(jù)操作接口,類似于通常所說的DAO接口。早期的Mapper接口需要自定義去實(shí)現(xiàn),現(xiàn)在MyBatis會自動(dòng)為Mapper接口創(chuàng)建動(dòng)態(tài)代理對象。Mapper接口的方法通常與Mapper配置文件中的select、insert、update、delete等XML節(jié)點(diǎn)一一對應(yīng)。

3)Executor(執(zhí)行器):MyBatis中所有SQL語句的執(zhí)行都是通過Executor進(jìn)行的,Executor是MyBatis的一個(gè)核心接口。

4)SqlSession(會話):MyBatis的關(guān)鍵對象,類似于JDBC中的連接(Connection),SqlSession對象完全包含數(shù)據(jù)庫相關(guān)的所有執(zhí)行SQL操作的方法,它的底層封裝了JDBC連接,可以用SqlSession實(shí)例來直接執(zhí)行被映射的SQL語句。

5)SqlSessionFactory(會話工廠):MyBatis的關(guān)鍵對象,它是單個(gè)數(shù)據(jù)庫映射關(guān)系經(jīng)過編譯后的內(nèi)存鏡像。SqlSessionFactory對象的實(shí)例可以通過SqlSessionFactoryBuilder對象類獲得。

6)SqlSessionFactoryBuilder構(gòu)建器:用于解析配置文件,包括屬性配置、別名配置、攔截器配置、數(shù)據(jù)源和事務(wù)管理器等,可以從XML配置文件或一個(gè)預(yù)定義的配置實(shí)例進(jìn)行構(gòu)建。

4.MyBatis的啟動(dòng)流程

MyBatis的使用雖然簡單,但是,它屬于高度封裝的框架,因此,我們必須熟悉MyBatis的啟動(dòng)和執(zhí)行過程。具體的工作流程如圖所示。

在這里插入圖片描述

1)加載Mapper配置的SQL映射文件,或者注解的相關(guān)SQL內(nèi)容。

2)創(chuàng)建會話工廠。MyBatis通過讀取配置文件的數(shù)據(jù)源信息來構(gòu)造會話工廠(SqlSessionFactory)。

3)創(chuàng)建會話。MyBatis可以通過會話工廠來創(chuàng)建會話對象(SqlSession),會話對象是一個(gè)接口,該接口中包含對數(shù)據(jù)庫操作的增、刪、改、查方法。

4)創(chuàng)建執(zhí)行器。因?yàn)闀拰ο蟊旧聿荒苤苯硬僮鲾?shù)據(jù)庫,所以它使用了一個(gè)叫作數(shù)據(jù)庫執(zhí)行器(Executor)的接口來幫它執(zhí)行操作。

5)封裝SQL對象。在這一步,執(zhí)行器將待處理的SQL信息封裝到一個(gè)對象(MappedStatement)中,該對象包括SQL語句、輸入?yún)?shù)映射信息(Java簡單類型、HashMap或POJO)和輸出結(jié)果映射信息。

6)操作數(shù)據(jù)庫。擁有了執(zhí)行器和SQL信息封裝對象就可以使用它們訪問數(shù)據(jù)庫,最后返回操作結(jié)果,結(jié)束流程。

總結(jié)起來,MyBatis主要有兩大核心組件:SqlSessionFactory和Mapper。SqlSessionFactory負(fù)責(zé)創(chuàng)建數(shù)據(jù)庫會話,Mapper主要提供SQL映射。

http://aloenet.com.cn/news/45126.html

相關(guān)文章:

  • 醫(yī)療網(wǎng)站做藥品是干嘛搜索引擎營銷的案例有哪些
  • java網(wǎng)站開發(fā)的參考文獻(xiàn)東莞網(wǎng)站優(yōu)化
  • php程序員網(wǎng)站開發(fā)免費(fèi)培訓(xùn)課程
  • 專業(yè)seo站長工具全面查詢網(wǎng)站市場調(diào)研報(bào)告1500字
  • 聊城網(wǎng)站營銷簡述提升關(guān)鍵詞排名的方法
  • 網(wǎng)站建設(shè)模式有哪些方面網(wǎng)絡(luò)推廣怎么找客戶
  • 建設(shè)網(wǎng)站思路青島seo排名公司
  • php網(wǎng)站集成支付寶接口2022百度seo優(yōu)化工具
  • 如何在天氣預(yù)報(bào)網(wǎng)站做引流網(wǎng)站關(guān)鍵詞優(yōu)化排名外包
  • 云主機(jī) 網(wǎng)站嗎網(wǎng)站友鏈查詢源碼
  • 網(wǎng)站閉站保護(hù)網(wǎng)站運(yùn)營一個(gè)月多少錢
  • 向國旗敬禮做時(shí)代新人網(wǎng)站上海自動(dòng)seo
  • 國外做btc的網(wǎng)站軟文推廣文案
  • 自己做家具展示網(wǎng)站優(yōu)化seo深圳
  • 昆明網(wǎng)站建設(shè)價(jià)目表最新軍事消息
  • 網(wǎng)站建設(shè)師百度百科網(wǎng)絡(luò)輿情監(jiān)測
  • 石家莊建站網(wǎng)頁模板百度人工服務(wù)
  • 源碼建站之網(wǎng)站建設(shè)搜索引擎平臺有哪些軟件
  • 做菠菜網(wǎng)站有沒有被騙的百度瀏覽器官方網(wǎng)站
  • 南京微信網(wǎng)站建設(shè)百度我的訂單查詢
  • 唐山網(wǎng)站建設(shè)費(fèi)用seo排名公司
  • iis 網(wǎng)站文件被占用seo優(yōu)化多久能上排名
  • 用dw做旅游網(wǎng)站的方法權(quán)重查詢
  • 比較厲害的網(wǎng)站制作公司重慶seo整站優(yōu)化外包服務(wù)
  • 淘客做網(wǎng)站怎么備案百度一下百度官網(wǎng)
  • 用國外網(wǎng)站 圖片做自媒體福州seo公司排名
  • 動(dòng)態(tài)網(wǎng)頁設(shè)計(jì)個(gè)人簡歷代碼seo宣傳網(wǎng)站
  • 銷售seo是什么的
  • 貸款織夢網(wǎng)站模版網(wǎng)絡(luò)營銷策略分析論文
  • 國外高校實(shí)驗(yàn)室網(wǎng)站建設(shè)成果廣告聯(lián)盟論壇