3 回答

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

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