MyBatis-Plus CRUD接口-Service CRUD 接口

2022-04-02 11:57 更新
  • 通用 Service CRUD 封裝?IService接口,進(jìn)一步封裝 CRUD 采用get?查詢單行,?remove?刪除,?list?查詢集合,?page?分頁,前綴命名方式區(qū)分Mapper層避免混淆,
  • 泛型 ??為任意實(shí)體對(duì)象
  • 建議如果存在自定義通用 Service 方法的可能,請(qǐng)創(chuàng)建自己的IBaseService繼承Mybatis-Plus提供的基類
  • 對(duì)象Wrapper?為條件構(gòu)造器

Save

// 插入一條記錄(選擇字段,策略插入)
boolean save(T entity);
// 插入(批量)
boolean saveBatch(Collection<T> entityList);
// 插入(批量)
boolean saveBatch(Collection<T> entityList, int batchSize);

參數(shù)說明

 參數(shù)名 類型  描述 
 ?entity?  T  實(shí)體對(duì)象
 ?entityList?  Collection<T>  實(shí)體對(duì)象集合
 ?batchSize?  int  插入批次數(shù)量

SaveOrUpdate

// TableId 注解存在更新記錄,否插入一條記錄
boolean saveOrUpdate(T entity);
// 根據(jù)updateWrapper嘗試更新,否繼續(xù)執(zhí)行saveOrUpdate(T)方法
boolean saveOrUpdate(T entity, Wrapper<T> updateWrapper);
// 批量修改插入
boolean saveOrUpdateBatch(Collection<T> entityList);
// 批量修改插入
boolean saveOrUpdateBatch(Collection<T> entityList, int batchSize);

參數(shù)說明

 參數(shù)名  類型  描述
 ?entity?  T  實(shí)體對(duì)象
 ?updateWrapper?  Wrapper<T>  實(shí)體對(duì)象封裝操作類 UpdateWrapper
 ?entityList?  Collection<T>  實(shí)體對(duì)象集合
 ?batchSize?  int  插入批次數(shù)量

Remove

// 根據(jù) entity 條件,刪除記錄
boolean remove(Wrapper<T> queryWrapper);
// 根據(jù) ID 刪除
boolean removeById(Serializable id);
// 根據(jù) columnMap 條件,刪除記錄
boolean removeByMap(Map<String, Object> columnMap);
// 刪除(根據(jù)ID 批量刪除)
boolean removeByIds(Collection<? extends Serializable> idList);

參數(shù)說明

 參數(shù)名  類型  描述 
 ?queryWrapper?  Wrapper<T>  實(shí)體包裝類 QueryWrapper
 ?id?  Serializable  主鍵 ID
 ?columnMap?  Map<String, Object>  表字段 map 對(duì)象
 ?idList?  Collection<? extends Serializable>  主鍵 ID 列表

Update

// 根據(jù) UpdateWrapper 條件,更新記錄 需要設(shè)置sqlset
boolean update(Wrapper<T> updateWrapper);
// 根據(jù) whereWrapper 條件,更新記錄
boolean update(T updateEntity, Wrapper<T> whereWrapper);
// 根據(jù) ID 選擇修改
boolean updateById(T entity);
// 根據(jù)ID 批量更新
boolean updateBatchById(Collection<T> entityList);
// 根據(jù)ID 批量更新
boolean updateBatchById(Collection<T> entityList, int batchSize);

參數(shù)說明

 參數(shù)名  類型   描述 
 ?updateWrapper?  Wrapper<T>  實(shí)體對(duì)象封裝操作類 UpdateWrapper
 ?entity?  T  實(shí)體對(duì)象
 ?entityList?  Collection<T>  實(shí)體對(duì)象集合
 ?batchSize?  int  更新批次數(shù)量

Get

// 根據(jù) ID 查詢
T getById(Serializable id);
// 根據(jù) Wrapper,查詢一條記錄。結(jié)果集,如果是多個(gè)會(huì)拋出異常,隨機(jī)取一條加上限制條件 wrapper.last("LIMIT 1")
T getOne(Wrapper<T> queryWrapper);
// 根據(jù) Wrapper,查詢一條記錄
T getOne(Wrapper<T> queryWrapper, boolean throwEx);
// 根據(jù) Wrapper,查詢一條記錄
Map<String, Object> getMap(Wrapper<T> queryWrapper);
// 根據(jù) Wrapper,查詢一條記錄
<V> V getObj(Wrapper<T> queryWrapper, Function<? super Object, V> mapper);

參數(shù)說明

 參數(shù)名  類型  描述
 ?id?  Serializable  主鍵 ID
 ?queryWrapper?  Wrapper<T>  實(shí)體對(duì)象封裝操作類 QueryWrapper
 ?throwEx?  boolean  有多個(gè) result 是否拋出異常
 ?entity?  T  實(shí)體對(duì)象
 ?mapper?  Function<? super Object, V>  轉(zhuǎn)換函數(shù)

List

// 查詢所有
List<T> list();
// 查詢列表
List<T> list(Wrapper<T> queryWrapper);
// 查詢(根據(jù)ID 批量查詢)
Collection<T> listByIds(Collection<? extends Serializable> idList);
// 查詢(根據(jù) columnMap 條件)
Collection<T> listByMap(Map<String, Object> columnMap);
// 查詢所有列表
List<Map<String, Object>> listMaps();
// 查詢列表
List<Map<String, Object>> listMaps(Wrapper<T> queryWrapper);
// 查詢?nèi)坑涗?List<Object> listObjs();
// 查詢?nèi)坑涗?<V> List<V> listObjs(Function<? super Object, V> mapper);
// 根據(jù) Wrapper 條件,查詢?nèi)坑涗?List<Object> listObjs(Wrapper<T> queryWrapper);
// 根據(jù) Wrapper 條件,查詢?nèi)坑涗?<V> List<V> listObjs(Wrapper<T> queryWrapper, Function<? super Object, V> mapper);

參數(shù)說明

 參數(shù)名  類型  描述
 ?queryWrapper?  Wrapper<T>  實(shí)體對(duì)象封裝操作類 QueryWrapper
 ?idList?  Collection<? extends Serializable>  主鍵 ID 列表
 ?columnMap?  Map<String, Object>  表字段 map 對(duì)象
 ?mapper?  Function<? super Object, V>  轉(zhuǎn)換函數(shù)

Page

// 無條件分頁查詢
IPage<T> page(IPage<T> page);
// 條件分頁查詢
IPage<T> page(IPage<T> page, Wrapper<T> queryWrapper);
// 無條件分頁查詢
IPage<Map<String, Object>> pageMaps(IPage<T> page);
// 條件分頁查詢
IPage<Map<String, Object>> pageMaps(IPage<T> page, Wrapper<T> queryWrapper);

參數(shù)說明

 參數(shù)名  類型  描述 
 ?page?  IPage<T>  翻頁對(duì)象
 ?queryWrapper?  Wrapper<T>  實(shí)體對(duì)象封裝操作類 QueryWrapper

Count

// 查詢總記錄數(shù)
int count();
// 根據(jù) Wrapper 條件,查詢總記錄數(shù)
int count(Wrapper<T> queryWrapper);

參數(shù)說明

 參數(shù)名  類型  描述
 queryWrapper  Wrapper<T>  實(shí)體對(duì)象封裝操作類 QueryWrapper

Chain

query

// 鏈?zhǔn)讲樵?普通
QueryChainWrapper<T> query();
// 鏈?zhǔn)讲樵?lambda 式。注意:不支持 Kotlin
LambdaQueryChainWrapper<T> lambdaQuery();

// 示例:
query().eq("column", value).one();
lambdaQuery().eq(Entity::getId, value).list();

update

// 鏈?zhǔn)礁?普通
UpdateChainWrapper<T> update();
// 鏈?zhǔn)礁?lambda 式。注意:不支持 Kotlin
LambdaUpdateChainWrapper<T> lambdaUpdate();

// 示例:
update().eq("column", value).remove();
lambdaUpdate().eq(Entity::getId, value).update(entity);


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)