下面是通用Mapper的各個方法描述。
基礎(chǔ)接口
Select
接口:SelectMapper<T>
方法:List<T> select(T record);
說明:根據(jù)實體中的屬性值進(jìn)行查詢,查詢條件使用等號
接口:SelectByPrimaryKeyMapper<T>
方法:T selectByPrimaryKey(Object key);
說明:根據(jù)主鍵字段進(jìn)行查詢,方法參數(shù)必須包含完整的主鍵屬性,查詢條件使用等號
接口:SelectAllMapper<T>
方法:List<T> selectAll();
說明:查詢?nèi)拷Y(jié)果,select(null)方法能達(dá)到同樣的效果
接口:SelectOneMapper<T>
方法:T selectOne(T record);
說明:根據(jù)實體中的屬性進(jìn)行查詢,只能有一個返回值,有多個結(jié)果是拋出異常,查詢條件使用等號
接口:SelectCountMapper<T>
方法:int selectCount(T record);
說明:根據(jù)實體中的屬性查詢總數(shù),查詢條件使用等號
Insert
接口:InsertMapper<T>
方法:int insert(T record);
說明:保存一個實體,null的屬性也會保存,不會使用數(shù)據(jù)庫默認(rèn)值
接口:InsertSelectiveMapper<T>
方法:int insertSelective(T record);
說明:保存一個實體,null的屬性不會保存,會使用數(shù)據(jù)庫默認(rèn)值
Update
接口:UpdateByPrimaryKeyMapper<T>
方法:int updateByPrimaryKey(T record);
說明:根據(jù)主鍵更新實體全部字段,null值會被更新
接口:UpdateByPrimaryKeySelectiveMapper<T>
方法:int updateByPrimaryKeySelective(T record);
說明:根據(jù)主鍵更新屬性不為null的值
Delete
接口:DeleteMapper<T>
方法:int delete(T record);
說明:根據(jù)實體屬性作為條件進(jìn)行刪除,查詢條件使用等號
接口:DeleteByPrimaryKeyMapper<T>
方法:int deleteByPrimaryKey(Object key);
說明:根據(jù)主鍵字段進(jìn)行刪除,方法參數(shù)必須包含完整的主鍵屬性
base 組合接口
接口:BaseSelectMapper<T>
方法:包含上面Select的4個方法
接口:BaseInsertMapper<T>
方法:包含上面Insert的2個方法
接口:BaseUpdateMapper<T>
方法:包含上面Update的2個方法
接口:BaseDeleteMapper<T>
方法:包含上面Delete的2個方法
CRUD 組合接口
接口:BaseMapper<T>
方法:繼承了base組合接口中的4個組合接口,包含完整的CRUD方法
Example 方法
接口:SelectByExampleMapper<T>
方法:List<T> selectByExample(Object example);
說明:根據(jù)Example條件進(jìn)行查詢
重點(diǎn):這個查詢支持通過Example類指定查詢列,通過selectProperties方法指定查詢列
接口:SelectCountByExampleMapper<T>
方法:int selectCountByExample(Object example);
說明:根據(jù)Example條件進(jìn)行查詢總數(shù)
接口:UpdateByExampleMapper<T>
方法:int updateByExample(@Param("record") T record, @Param("example") Object example);
說明:根據(jù)Example條件更新實體record包含的全部屬性,null值會被更新
接口:UpdateByExampleSelectiveMapper<T>
方法:int updateByExampleSelective(@Param("record") T record, @Param("example") Object example);
說明:根據(jù)Example條件更新實體record包含的不是null的屬性值
接口:DeleteByExampleMapper<T>
方法:int deleteByExample(Object example);
說明:根據(jù)Example條件刪除數(shù)據(jù)
Example 組合接口
接口:ExampleMapper<T>
方法:包含上面Example中的5個方法
Condition 方法
Condition方法和Example方法作用完全一樣,只是為了避免Example帶來的歧義,提供的的Condition方法
接口:SelectByConditionMapper<T>
方法:List<T> selectByCondition(Object condition);
說明:根據(jù)Condition條件進(jìn)行查詢
接口:SelectCountByConditionMapper<T>
方法:int selectCountByCondition(Object condition);
說明:根據(jù)Condition條件進(jìn)行查詢總數(shù)
接口:UpdateByConditionMapper<T>
方法:int updateByCondition(@Param("record") T record, @Param("example") Object condition);
說明:根據(jù)Condition條件更新實體record包含的全部屬性,null值會被更新
接口:UpdateByConditionSelectiveMapper<T>
方法:int updateByConditionSelective(@Param("record") T record, @Param("example") Object condition);
說明:根據(jù)Condition條件更新實體record包含的不是null的屬性值
接口:DeleteByConditionMapper<T>
方法:int deleteByCondition(Object condition);
說明:根據(jù)Condition條件刪除數(shù)據(jù)
Condition 組合接口
接口:ConditionMapper<T>
方法:包含上面Condition中的5個方法
RowBounds
默認(rèn)為內(nèi)存分頁,可以配合PageHelper實現(xiàn)物理分頁
接口:SelectRowBoundsMapper<T>
方法:List<T> selectByRowBounds(T record, RowBounds rowBounds);
說明:根據(jù)實體屬性和RowBounds進(jìn)行分頁查詢
接口:SelectByExampleRowBoundsMapper<T>
方法:List<T> selectByExampleAndRowBounds(Object example, RowBounds rowBounds);
說明:根據(jù)example條件和RowBounds進(jìn)行分頁查詢
接口:SelectByConditionRowBoundsMapper<T>
方法:List<T> selectByConditionAndRowBounds(Object condition, RowBounds rowBounds);
說明:根據(jù)example條件和RowBounds進(jìn)行分頁查詢,該方法和selectByExampleAndRowBounds完全一樣,只是名字改成了Condition
RowBounds 組合接口
接口:RowBoundsMapper<T>
方法:包含上面RowBounds中的前兩個方法,不包含selectByConditionAndRowBounds
special 特殊接口
這些接口針對部分?jǐn)?shù)據(jù)庫設(shè)計,不是所有數(shù)據(jù)庫都支持
接口:InsertListMapper<T>
方法:int insertList(List<T> recordList);
說明:批量插入,支持批量插入的數(shù)據(jù)庫可以使用,例如MySQL,H2等,另外該接口限制實體包含id屬性并且必須為自增列
接口:InsertUseGeneratedKeysMapper<T>
方法:int insertUseGeneratedKeys(T record);
說明:插入數(shù)據(jù),限制為實體包含id屬性并且必須為自增列,實體配置的主鍵策略無效
MySQL 專用
接口:MySqlMapper<T>
繼承方法:int insertList(List<T> recordList);
繼承方法:int insertUseGeneratedKeys(T record);
說明:該接口不包含方法,繼承了special中的InsertListMapper<T>和InsertUseGeneratedKeysMapper<T>
SqlServer 專用
由于sqlserver中插入自增主鍵時,不能使用null插入,不能在insert語句中出現(xiàn)id。
注意SqlServer的兩個特有插入方法都使用了
@Options(useGeneratedKeys = true, keyProperty = "id")
這就要求表的主鍵為id,且為自增,如果主鍵不叫id可以看高級教程中的解決方法。
另外這倆方法和base中的插入方法重名,不能同時存在!
如果某種數(shù)據(jù)庫和SqlServer這里類似,也可以使用這些接口(需要先測試)。
接口:InsertMapper
方法:int insert(T record);
說明:插入數(shù)據(jù)庫,null值也會插入,不會使用列的默認(rèn)值
接口:InsertSelectiveMapper
方法:int insertSelective(T record);
說明:插入數(shù)據(jù)庫,null的屬性不會保存,會使用數(shù)據(jù)庫默認(rèn)值
接口:SqlServerMapper
說明:這是上面兩個接口的組合接口。
Ids 接口
通過操作ids字符串進(jìn)行操作,ids 如 “1,2,3” 這種形式的字符串,這個方法要求實體類中有且只有一個帶有@Id注解的字段,否則會拋出異常。
接口:SelectByIdsMapper
方法:List<T> selectByIds(String ids)
說明:根據(jù)主鍵字符串進(jìn)行查詢,類中只有存在一個帶有@Id注解的字段
接口:DeleteByIdsMapper
方法:int deleteByIds(String ids)
說明:根據(jù)主鍵字符串進(jìn)行刪除,類中只有存在一個帶有@Id注解的字段
Ids 組合接口
接口:IdsMapper<T>
方法:包含上面Ids中的前兩個方法
Mapper<T> 接口
接口:Mapper<T>
該接口兼容Mapper2.x版本,繼承了BaseMapper<T>, ExampleMapper<T>, RowBoundsMapper<T>三個組合接口。
浙公網(wǎng)安備 33010602011771號