前言
目前的大環境下,使用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或者碼雲上進行下載,后續的例子都會同步更新。