Mybaitis入門基礎(一)MyBatis的概念引入及工作原理

  • 2022 年 4 月 23 日
  • 筆記

一:框架前言的那些事                                                                                                                                               

        良將難求 勝鐵騎三千 益友知遇 領人間無數,三國鼎立中魏、蜀,吳三國的三位皇帝曹操、劉備、劉權他們都有很多謀士(出謀劃策的人)。這些謀士其實就是他們出攻城略地的策劃方案的,而他們能否成功取決於策劃方案是否周全,能高屋建瓴的布局,並且能縱觀全局進行排兵布陣。先做什麼,再做什麼,還是很有說法的,在有天賦的同時還得遵循一定的發展規律,那麼眾所周知java學習分為三個部分:java基礎,java高級,javaweb框架部分。在我們之前的學習過程中我們要想把資料庫的數據成功的展示在web頁面上,我們使用的是jdbc、servlet、jsp技術。這也是我們接觸的最基礎入門基的mvc結構,即model數據訪問層我們使用的是jdbc,view視圖層我們使用的是jsp或html+ajax,controler控制層我們使用的是servlet最為後台java語言和前端jsp和html之間數據傳遞轉換的的中間人,即客戶端和後台伺服器端數據溝通的媒介和橋樑。

       各位大佬都知道數據持久化是使用java技術將記憶體中的瞬時數據轉換為持久化的狀態,說白了就是java類型的數據和資料庫類型的數據做下轉換。伺服器端的是將後台java形式的數據送回到客戶端進行展示,即將數據響應到客戶端。客戶端是根據客戶的需求將請求發送給伺服器端進行請求處理的。

       話不多說,先看看我們學習過的mvc結構,程式碼的調用過程是什麼樣的。

       數據持久化           調用                  伺服器端                   調用                    客戶端                     

       Model                  ↔                    controller                    ↔                        view    

       jdbc                    new                  servlet                       new                       jsp/html+ajax 

     

      那我們再來看看後期學習的框架後的mvc結構,程式碼的調用過程是什麼樣的。   

       數據持久化           調用                  伺服器端                   調用                    客戶端                     

       Model                  ↔                    controller                    ↔                        view    

       mybatis              new                   servlet                       new                       jsp/html+ajax/html+vue

       mybatis             spring                 servlet                     spring                      jsp/html+ajax /html+vue

       mybatis             spring                 springMVC              spring                      jsp/html+ajax /html+vue

       mybatis             spring                 springBoot             spring                       jsp/html+ajax /html+vue

 

      那麼問題來了我們為什麼學習新框架呢?他們完成的功能不是一樣的嗎?那我來考考你,看下你平時是不是關注過生活細節,long long age 很久以前,我們去銀行開卡,存錢,取錢,是不是都在櫃檯上辦理,銀行有很多個窗口,都有穿著制服的小哥哥小姐姐,在給客戶辦理業務。但是現在再去銀行,你是不是發現,銀行窗口辦理業務的小哥哥和小姐姐只有一兩個了,而大廳里卻多了很多機器,很多客戶在機器邊排隊等待自己在機器上辦理業務了。這是不是銀行在提高了辦理業務效率的同時,還節約了人員成本呢?這家銀行辦事效率提高了,是不是就可以轉而去提高服務品質了,這樣這家銀行是不是就會很受大家歡迎,這家銀行是不是就在同時提高了客戶滿意度的同時,也就能賺錢多多啦?這是不是就達到了雙贏的目的。企業嘛就是以賺錢為主,無論是國企還是私企。此處有人就問holly姐說了這麼多,這和我們學習框架某個毛線關係啊?別急呀,聽我細細道來,其實我們軟體開發追根溯源就是圍繞著增刪改查在玩。企業也想達到雙贏,有能賺錢多多,用人成本又能很低。那怎麼解決呢?就是優化我們的工作方式和技術。比如原來用jdbc能開發企業級軟體項目嗎?能,但是開發周期可能會很長,可能用jdbc開發周期要1年,但是用了框架我們可能開發周期編程6個月了。假設是同一個團隊,一年開發一個項目任務,創造的價值是200w,每個人的薪資老闆只能開8k。如果同樣的團隊,一年開發兩個項目任務,創造的價值是400w,也許老闆吃到肉吃飽的同時,會讓你們喝湯,這個時候每個人的薪資老闆可能給你開到13k左右。這已經是有良心的老闆嘍!框架其實就是優化了原來最傳統的一些開發技術,提高了開發效率,自己寫的程式碼也可以打包優化,重複使用。現在曉得了吧?那麼說了大半天,jdbc即將要被替代掉,那它問題出現在哪呢 ?

一:對原生態JDBC問題的總結                                                                                                                                   

  新項目要使用mybatis作為持久層框架,由於本人之前一直使用的Hibernate,對mybatis的用法實在欠缺,最近幾天計劃把mybatis學習一哈,特將學習筆記記錄於此,方便大家參考,也方便自己查閱。

  話不多說,先看看原始的JDBC程式程式碼,看看這樣的程式碼存在什麼問題。