Mybatis Mapper3通用介面查詢
阿新 • • 發佈:2019-02-06
Mybatis的第三方通用類庫通用Mapper 提供了簡易的直接進行查詢的方式,只需要繼承指定的父類,呼叫其相應的方法,即可完成增刪改查的基礎操作,但只限於單表,下面來看一下是如何進行配置的。
常用的父類及其方法
- SelectOneMapper (selectOne)
- SelectMapper (select)
- SelectAllMapper (selectAll)
- SelectCountMapper (selectCount)
- SelectByPrimaryKeyMapper (selectByPrimaryKey)
- UpdateByPrimaryKeyMapper (updateByPrimaryKey)
- UpdateByPrimaryKeySelectiveMapper (updateByPrimaryKeySelective)
- DeleteMapper (delete)
- DeleteByPrimaryKeyMapper (deleteByPrimaryKey)
- InsertMapper (insert)
- InsertSelective (insertSelective)
- SelectByConditionMapper (selectByCondition)
- SelectCountByConditionMapper (selectCountByCondition)
- DeleteByConditionMapper (deleteByCondition)
- UpdateByConditionMapper (updateByCondition)
- UpdateByConditionSelectiveMapper (updateByCondition)
可以看到MyBatis提供的介面是非常的豐富的,但是如果我們只是需要指定的一些查詢,而不需要另外的一些,實現這些介面是非常麻煩的,這種情況下,我們可以自定義一個通用的介面類,例如BaseMapper,讓這個介面去繼承需要的介面,從而簡化開發。
public interface BaseMapper<T> extends BaseSelectMapper<T>, BaseUpdateMapper <T>, BaseDeleteMapper<T>, SqlServerMapper<T>,
ConditionMapper<T>, RowBoundsMapper<T>
Mapper3支援泛型查詢,在泛型中指定要查詢的實體類即可。
最後需要在Spring XML中進行配置:
<bean class="tk.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="base" value="com.xxx.xxx.mapper" />
<property name="markerInterface" value="com.xxx.xxx.mapper.BaseMapper" />
<property name="properties">
<value>
mappers=com.xxx.xxx.mapper.BaseMapper
</value>
</property>
</bean>
basePackage是用來指定Mapper介面檔案所在的基包的,在這個基包或其所有子包下面的Mapper介面都將被搜尋到。
markerInterface是用於指定一個介面的,當指定了markerInterface之後,MapperScannerConfigurer將只註冊繼承自markerInterface的介面。
properties是指mapper外掛的配置,可以指定自己的mapper,也可以使用通用的mapper配置。
<property name="properties">
<value>
mappers=tk.mybatis.mapper.common.BaseMapper
</value>
</property>
就此,Mybatis的通用Mapper配置就完成了,在程式中可以直接呼叫mapper中介面的通用方法進行增刪改查的操作。
注意一點,此通用mapper查詢只支援單表的增刪改查操作,如果需要進行復雜查詢,仍需自行編寫xml檔案或使用註解的方式。