3 回答

TA貢獻(xiàn)1998條經(jīng)驗(yàn) 獲得超6個(gè)贊
mybatis是警察.
druid是武器庫(kù)(有很多槍).
jdbc是武器商(他們?cè)鞓尳o武器庫(kù)).
當(dāng)你需要一次"除暴安良"時(shí),你需要去找警察,警察從武器庫(kù)拿槍干活.
以往的開發(fā),是你使用jdbc直接造槍,然后自己干活.
jdbc整合了:加載數(shù)據(jù)庫(kù)驅(qū)動(dòng),創(chuàng)建連接,寫原生語句,執(zhí)行,關(guān)閉這些東西.
而mybatis是對(duì)jdbc的封裝,他允許你通過配置的形式,配置數(shù)據(jù)庫(kù)參數(shù),并且允許你通過xml來寫動(dòng)態(tài)sql語句.<if:test>讓你可以把sql變得靈活起來.并且還能將你的查詢結(jié)果直接映射到你想要的實(shí)體上面.
然后你就去配置你的用戶名,密碼,連接超時(shí),等等.
等你下次使用mybatis時(shí),他后面會(huì)根據(jù)你的配置,幫你加載數(shù)據(jù)庫(kù)驅(qū)動(dòng),創(chuàng)建連接,寫原生語句,執(zhí)行,關(guān)閉.
但是mybatis發(fā)現(xiàn),在你每次訪問都要重新創(chuàng)建創(chuàng)建連接,寫,關(guān).很麻煩,所以mybatis說,我可以接受你再配置一個(gè)連接池,比如druid.
mybatis讓你指定連接池是誰,如druid.之后將原來自己需要搞的東西都交給druid.什么賬號(hào)了,密碼了.都給他,讓druid幫你創(chuàng)建一批連接,在你需要用的時(shí)候,mybatis從druid里面拿一個(gè)就行.
下面是一次簡(jiǎn)單的訪問流程:
controller->service->dao->mapper
1.首先項(xiàng)目啟動(dòng)時(shí)druid就已經(jīng)使用jdbc創(chuàng)建好一堆連接了,留待后用.
2.當(dāng)請(qǐng)求到mapper時(shí),mybatis框架創(chuàng)建臨時(shí)類.
3.然后將動(dòng)態(tài)sql進(jìn)行替換重寫,變成原始的native sql.
4.從druid拿到一個(gè)連接.
5.將sql通過連接交給數(shù)據(jù)庫(kù)執(zhí)行.
6.然后獲取執(zhí)行結(jié)果.
7.mybatis進(jìn)行將結(jié)果進(jìn)行映射,返回?cái)?shù)據(jù).
說的有點(diǎn)亂,希望能說清楚吧...

TA貢獻(xiàn)2012條經(jīng)驗(yàn) 獲得超12個(gè)贊
.1、Spring Spring是一個(gè)開源框架,Spring是于2003 年興起的一個(gè)輕量級(jí)的Java 開發(fā)框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中闡述的部分理念和原型衍生而來。它是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的。
添加回答
舉報(bào)