日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

解读Mybatis数据库开发框架

發(fā)布時間:2025/3/15 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 解读Mybatis数据库开发框架 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

SSM開發(fā)框架的M就是Mybatis,Mybatis可以幫助開發(fā)人員更加方便地操作數(shù)據(jù)庫,減少開發(fā)人員在數(shù)據(jù)庫操作方面的編碼工作量。下圖是集成到Spring框架的Mybatis技術(shù)架構(gòu)圖。

?

圖 1 集成到Spring框架的MyBaits技術(shù)

上圖是集成到Spring框架的MyBaits技術(shù)架構(gòu)圖。架構(gòu)圖分為兩部分:虛線框外的是Spring框架的業(yè)務(wù)邏輯處理類,它調(diào)用Mybatis的DAO接口發(fā)起對數(shù)據(jù)庫的增刪改查請求;虛線框內(nèi)的是Mybatis框架部分,這部分包括DAO接口、DAO接口實現(xiàn)類Mapper、POJO實體類、SQL執(zhí)行Executor類、SqlSession類。

一個用戶登錄業(yè)務(wù)訪問數(shù)據(jù)庫流程如下:用戶通過JSP填寫登錄賬號和密碼后,JSP會發(fā)送登錄請求到指定的Controller類,Controller類收到請求后,會調(diào)用登錄業(yè)務(wù)類(Service類),登錄業(yè)務(wù)類調(diào)用DAO類的登錄接口,因為該接口被Mapper類實現(xiàn),因此Mapper類的登錄SQL代碼會被執(zhí)行,真正執(zhí)行SQL代碼的是Executor類,它創(chuàng)建SqlSession對象,由SqlSession對象訪問數(shù)據(jù)庫的用戶表,并將訪問結(jié)果返回給Mapper,Mapper類會根據(jù)接口的返回類型返回數(shù)據(jù)到登錄業(yè)務(wù)類。

DAO接口聲明了訪問數(shù)據(jù)庫的具體操作方法,在不對外暴露數(shù)據(jù)庫訪問細(xì)節(jié)的前提下提供數(shù)據(jù)庫的增刪改查方法,它不負(fù)責(zé)增刪改查方法的具體實現(xiàn),方法的具體實現(xiàn)由Mapper負(fù)責(zé)。這樣做的好處時當(dāng)數(shù)據(jù)庫訪問細(xì)節(jié)發(fā)生變化時,不會影響到業(yè)務(wù)邏輯類的改動。例如,當(dāng)數(shù)據(jù)庫訪問細(xì)節(jié)發(fā)生變化時,只需修改Mapper代碼就可以了,而Mapper代碼是XML文件,因此無需重新編譯整個系統(tǒng)。假如實現(xiàn)細(xì)節(jié)放在DAO類中,就需要修改DAO類的代碼,修改DAO類的代碼顯然會影響到Service類的代碼,即使沒有影響,也需要重新編譯整個系統(tǒng)。DAO接口由MyBaits自動生成,無需手動編寫DAO接口代碼。

Mapper是DAO的實現(xiàn)類,Mapper不是Java類,而是一個XML文件,訪問數(shù)據(jù)庫的SQL語句都是在Mapper中實現(xiàn)的,這些Mapper代碼不需要你手動編寫,完全由MyBaits自動生成。

POJO是實體類,主要是需要數(shù)據(jù)傳遞和序列化的類。例如與數(shù)據(jù)庫表對應(yīng)的Java類。POJO類也不需要手動編寫代碼,POJO類完全由MyBaits自動生成。

Exectuor類是執(zhí)行SQL語句的類,Mapper所有的SQL語句都通過Exectuor類來執(zhí)行,Exectuor類會創(chuàng)建一個SqlSession完成對數(shù)據(jù)庫的操作。

Mybatis簡單體現(xiàn)在開發(fā)人員建立數(shù)據(jù)庫后,可以使用Mybatis自身提供的插件自動生成上圖虛線框中的DAO接口類、Mapper實現(xiàn)類、POJO實體類的代碼,開發(fā)人員不需要手動編寫這些代碼。只有在特殊SQL查詢需求的情況下,才會擴(kuò)展這些代碼。下圖是Mybatis代碼自動生成原理圖。

?

圖2 Mybaits代碼自動生成原理圖

Mybatis代碼自動生成插件需要從配置文件中讀取數(shù)據(jù)庫的訪問地址、登錄賬號和密碼,還需要從配置文件中讀取數(shù)據(jù)庫的哪些表需要生成POJO類、DAO接口類和Mapper實現(xiàn)類,以及這些類存儲到什么位置。

?

圖 3 Mybaits代碼自動生成配置文件

前面介紹了Mybatis的框架結(jié)構(gòu)和數(shù)據(jù)庫操作代碼自動生成機(jī)制,了解了Mybatis和Spring框架的集成。在后面的人脈系統(tǒng)設(shè)計中,我們會用到這些知識。

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的解读Mybatis数据库开发框架的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。