Spring Boot 2.x(四):整合Mybatis的四種方式
前言
目前的大環境下,使用Mybatis
作為持久層框架還是佔了絕大多數的,下面我們來說一下使用Mybatis
的幾種姿勢。
姿勢一:零配置註解開發
第一步:引入依賴
首先,我們需要在pom檔案中新增依賴:
第二步:配置檔案
這裡我們採用yml來進行編寫,與properties檔案相比,yml看起來更加簡潔優雅,這裡需要注意的是driver-class-name
這個屬性我們採用的是com.mysql.cj.jdbc.Driver
而非之前的com.mysql.jdbc.Driver
,如果採用之前包下的Driver
,控制檯會打印出一行這樣的資訊告訴我們去用新的~
第三步:指定MapperScan
首先,我們需要在啟動類指定@MapperScan
,這樣做就可以不用去挨個的在Mapper
介面中新增@Mapper
註解。這裡的值就是你的Mapper
介面所在的包的路徑。
第四步:編寫Mapper介面
通過@Select
註解和@Results
註解可以指定SQL語句以及返回值。當然,其他的不同的操作也有不同的註解,比如@Insert
、@Update
、@Delete
第五步:測試程式編寫
訪問 localhost:8081/user/findAll,我們就可以看到測試的結果:
姿勢二:XML
我們用的最多的是這種方式,下面來看看怎麼去實現,第一步與姿勢一的重複,這裡就不再多做闡述
第一步:編寫配置檔案
我們需要在配置檔案中新增mybatis-config.xml
的路徑以及用於Mapper*.xml
的檔案的路徑:
第二步:編寫Mapper介面以及配置檔案:
Mapper介面:
mybatis-config.xml:
UserMapper.xml:
這裡需要注意UserMapper.xml中的namespace
需要與介面的路徑一致,否則會出現錯誤。
測試:
測試的程式與之前的一致,我們直接訪問localhost:8082/user/findAll
,可以看到成功的結果:
姿勢三:SqlSession
使用SqlSession的姿勢和可以與上面兩種方式進行結合,emmm。。。可以這麼理解,SQL就在那裡,只不過分為了兩個不同的方法去呼叫。其餘的程式碼我們就不再多講,直接來看是如何呼叫的:
可以看到,引數寫的是要呼叫的方法的路徑(這裡是與namespace
相對應)。下面我們可以執行一下程式:
姿勢四:基於SqlSession的升級
這裡,我們基於SqlSession
進行了一次升級,首先我們寫了一個BaseDao
,作為一個公用的介面。介面的實現是通過sqlSessionTemplate
。
然後我們將*Mapper.xml
的namespace
改為*Mapper
。現在,我們可以直接將所有的Mapper
介面刪除,直接通過dao
進行呼叫~
然後我們來啟動程式後去訪問
關於Mybatis
的使用,我們就先講到這裡~
原始碼可以去github或者碼雲上進行下載,後續的例子都會同步更新。
雲擼貓
公眾號
原創文章,文筆有限,才疏學淺,文中若有不正之處,萬望