解读Mybatis数据库开发框架
SSM開發框架的M就是Mybatis,Mybatis可以幫助開發人員更加方便地操作數據庫,減少開發人員在數據庫操作方面的編碼工作量。下圖是集成到Spring框架的Mybatis技術架構圖。
?
圖 1 集成到Spring框架的MyBaits技術
上圖是集成到Spring框架的MyBaits技術架構圖。架構圖分為兩部分:虛線框外的是Spring框架的業務邏輯處理類,它調用Mybatis的DAO接口發起對數據庫的增刪改查請求;虛線框內的是Mybatis框架部分,這部分包括DAO接口、DAO接口實現類Mapper、POJO實體類、SQL執行Executor類、SqlSession類。
一個用戶登錄業務訪問數據庫流程如下:用戶通過JSP填寫登錄賬號和密碼后,JSP會發送登錄請求到指定的Controller類,Controller類收到請求后,會調用登錄業務類(Service類),登錄業務類調用DAO類的登錄接口,因為該接口被Mapper類實現,因此Mapper類的登錄SQL代碼會被執行,真正執行SQL代碼的是Executor類,它創建SqlSession對象,由SqlSession對象訪問數據庫的用戶表,并將訪問結果返回給Mapper,Mapper類會根據接口的返回類型返回數據到登錄業務類。
DAO接口聲明了訪問數據庫的具體操作方法,在不對外暴露數據庫訪問細節的前提下提供數據庫的增刪改查方法,它不負責增刪改查方法的具體實現,方法的具體實現由Mapper負責。這樣做的好處時當數據庫訪問細節發生變化時,不會影響到業務邏輯類的改動。例如,當數據庫訪問細節發生變化時,只需修改Mapper代碼就可以了,而Mapper代碼是XML文件,因此無需重新編譯整個系統。假如實現細節放在DAO類中,就需要修改DAO類的代碼,修改DAO類的代碼顯然會影響到Service類的代碼,即使沒有影響,也需要重新編譯整個系統。DAO接口由MyBaits自動生成,無需手動編寫DAO接口代碼。
Mapper是DAO的實現類,Mapper不是Java類,而是一個XML文件,訪問數據庫的SQL語句都是在Mapper中實現的,這些Mapper代碼不需要你手動編寫,完全由MyBaits自動生成。
POJO是實體類,主要是需要數據傳遞和序列化的類。例如與數據庫表對應的Java類。POJO類也不需要手動編寫代碼,POJO類完全由MyBaits自動生成。
Exectuor類是執行SQL語句的類,Mapper所有的SQL語句都通過Exectuor類來執行,Exectuor類會創建一個SqlSession完成對數據庫的操作。
Mybatis簡單體現在開發人員建立數據庫后,可以使用Mybatis自身提供的插件自動生成上圖虛線框中的DAO接口類、Mapper實現類、POJO實體類的代碼,開發人員不需要手動編寫這些代碼。只有在特殊SQL查詢需求的情況下,才會擴展這些代碼。下圖是Mybatis代碼自動生成原理圖。
?
圖2 Mybaits代碼自動生成原理圖
Mybatis代碼自動生成插件需要從配置文件中讀取數據庫的訪問地址、登錄賬號和密碼,還需要從配置文件中讀取數據庫的哪些表需要生成POJO類、DAO接口類和Mapper實現類,以及這些類存儲到什么位置。
?
圖 3 Mybaits代碼自動生成配置文件
前面介紹了Mybatis的框架結構和數據庫操作代碼自動生成機制,了解了Mybatis和Spring框架的集成。在后面的人脈系統設計中,我們會用到這些知識。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的解读Mybatis数据库开发框架的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux 文件系统之 inode 概述
- 下一篇: 【VB.NET】VB.NET面向对象技术