在沒有接觸mybatis之前我都是用springmvc+jdbc做的數(shù)據(jù)庫操作,接觸mybatis之后對數(shù)據(jù)庫的操作變得簡單了很多,并且項目層次更加清晰,廢話不多說 直接上代碼,springboot搭建我就不說了,不了解的直接跳轉(zhuǎn):IntelliJ IDEA搭建SpringBoot
注解說明:下面例子中會用到一些注解,在此統(tǒng)一說明下
@Mapper: DAO 接口類的注解,所有接口直接調(diào)用mybatis.xml,下面有講解
@Data: DO 數(shù)據(jù)模型注解, mybatis查詢后可直接放回數(shù)據(jù)模型,也可在查詢時傳入
@Param: mapper傳入?yún)?shù)(DAO中使用)
配置說明
在resource下創(chuàng)建mybatis文件夾,mybatis文件夾中包含mapper文件夾(此文件夾中是所有業(yè)務(wù)的CRUD) 和 mybatis-config.xml
然后就是在application配置文件中增加配置項,我使用的是.yml配置,配置如下:
最后在pom中增加依賴
到此為止已經(jīng)配置完畢,可以開始coding了
下面寫幾個簡單的例子分別講一下不同情況時如何使用
dao層定義接口
創(chuàng)建DO數(shù)據(jù)模型
在mapper文件夾中創(chuàng)建UserMapper.xml文件
其中namespace 是 DAO接口類的路徑
resultMap:定義查詢數(shù)據(jù)后的返回, type指定DO數(shù)據(jù)模型, result是映射關(guān)系,數(shù)據(jù)字段映射到DO字段.
sql:定義的查詢字段集
在UserMapper.xml中添加插入配置
insert 代表插入, 其余的還有 update,select,delete
id: 對應(yīng)DAO中的接口名稱, 向上翻看是否與 dao層定義接口 名稱相同
#{param}固定寫法
此時一條用戶注冊數(shù)據(jù)插入就實現(xiàn)了.
除了普通數(shù)據(jù)插入也直接在DAO層直接傳入DO數(shù)據(jù)模型,但必須要在mybatis-config.xml文件中配置
除了基本數(shù)據(jù)類型的配置 也可以配置DO數(shù)據(jù)模型,配置好后我們繼續(xù)
將上述DAO接口參數(shù)改為 User user后UserMapper.xml 對應(yīng)的#{phone}等就可以改成user.phone
當插入數(shù)據(jù)量較大時建議先創(chuàng)建DO數(shù)據(jù)模型, 然后在進行插入查處 后期也方便維護.
查詢數(shù)據(jù)
以查詢用戶為例
mapper.xml如下
resultMap指定查詢的結(jié)果以map方式返回,UserResultMap在上面有配置,所有返回的結(jié)果可以直接用UserDO接收,DAO定義如下
以上就是大致的用法的了,delete,update操作就不講了.下面將一下在mybatis中如何使用if 和when進行條件查詢
如上圖中 使用到了兩個條件語句 <if> 和 <choose>, 其中<if>為單條件判斷,mybatis中沒有 if else語法 取而代之的是 <choose>語法.
場景: 根據(jù)多個用戶id查詢用戶列表
此處用到了<foreach>語句,? 其中collection是DAO中傳入的 List<String> userIds,也可以傳入String[] userIds.
到此mybatis就差不多了, 我也是第一次分享, 有不足的大家見諒哈
by:張鼎輝