? ? ? ? 在使用MyBatis操作數(shù)據(jù)庫時,需要頻繁的寫mapper層dao接口以及對應的配置文件和SQL語句,當功能方法繁雜,業(yè)務邏輯不復雜的時候,我們可以使用MyBatis的升級版MyBatis-Plus來代替我們寫這些繁瑣的配置文件和簡單的SQL。
MyBatis-Plus中提供了兩種操作數(shù)據(jù)庫的方式:
1、mapper調用
(1)書寫或使用MP生成數(shù)據(jù)庫表對應的實體類。
(注意 在id屬性上,要使用@TableId注解,type設置主鍵的生成方式并value對應主鍵的字段名)
?
(2)dao接口extends繼承BaseMapper<T>
?
(3)聲明Mapper掃描組件
這里使用springboot中得得注解@MapperScan("dao包")的方式。(如果是使用的spring或mybatis的在對應的配置文件中進行mapper聲明,這里不再贅述)
(4)使用處自動注入dao接口,直接調用dao中的sql方法即可完成對數(shù)據(jù)庫的各種基本操作,非常的便捷。
2、AR調用
(1)編寫實體類以及屬性字段的對應、id字段的生成配置等與以上一致。
注意:需要在實體類上添加extends Modle<T>? ?————核心
(2)dao接口中繼承BaseMapper<T>
(說明一下,此處也繼承BaseMapper并非使用其中的mapper調用,不使用mapper,也需要定義這個類,MP通過mapper獲取到表的結構;不定義? ?時,MP會報錯無法獲取表的結構信息。)
(3)使用實體類調用方法
如下圖,使用實體類對象直接調用操作數(shù)據(jù)庫中的方法,這樣可以達到無需經(jīng)過service和mapper層就可以直接操作數(shù)據(jù)庫,在應對一些不復雜的業(yè)務邏輯時,非常的方便快捷!
?
-
mpm基本的curd 和 AR的curd 的區(qū)別:
(為了方便,使用以下命名方式:mbm==MyBatis-Plus的Mapper方式,AR==ActiveRecord方式)
- 兩者都是用于操作數(shù)據(jù)庫,并且都不用寫SQL語句,只需寫實體類、Dao接口即可
- mbm和AR中的Dao接口都需要繼承BaseMapper<實體類名>,(BaseMapper是MyBatis-Plus框架中提供的,內含各種操作數(shù)據(jù)庫的方法,是MyBatis-Plus的核心)
- 二者在使用的時候,都需要在springboot的主啟動類上加@MapperScan(dao的全限定包名)
- AR中實體類需要繼承Model<類名>,而mbm不需要
- 使用mbm操作數(shù)據(jù)庫時需要先注入dao接口,使用mapper層調用內置的數(shù)據(jù)庫操作的方法;
而使用AR時,則是使用對象本身調用操作數(shù)據(jù)庫的方法,使用的是繼承來的Model<>內的方法:文章來源:http://www.zghlxwxcb.cn/news/detail-465216.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-465216.html
- 對數(shù)據(jù)庫操作的方法的調用方式不同:mbp使用mapper調用,而AR使用實體類對象調用
- 調用的方法的實現(xiàn)類不同:mbp為BaseMapper<T>實現(xiàn),而AR為Modle<T>類實現(xiàn)
到了這里,關于MyBatis-plus中的兩種快捷操作數(shù)據(jù)庫方式:1、mapper調用 2、ActiveRecord方式(簡稱AR) 二者的使用和區(qū)別介紹的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!