1. 程式人生 > >Mybatis Mapper3通用介面查詢

Mybatis Mapper3通用介面查詢

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檔案或使用註解的方式。