IService
接口,進(jìn)一步封裝 CRUD 采用get
?查詢單行,?remove
?刪除,?list
?查詢集合,?page
?分頁,前綴命名方式區(qū)分Mapper
層避免混淆,T
?為任意實(shí)體對(duì)象IBaseService
繼承Mybatis-Plus
提供的基類Wrapper
?為條件構(gòu)造器// 插入一條記錄(選擇字段,策略插入)
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ù)量 |
// 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ù)量 |
// 根據(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ù)名 | 類型 | 描述 |
?queryWrapper ? |
Wrapper<T> | 實(shí)體包裝類 QueryWrapper |
?id ? |
Serializable | 主鍵 ID |
?columnMap ? |
Map<String, Object> | 表字段 map 對(duì)象 |
?idList ? |
Collection<? extends Serializable> | 主鍵 ID 列表 |
// 根據(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ù)量 |
// 根據(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<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ù) |
// 無條件分頁查詢
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 |
// 查詢總記錄數(shù)
int count();
// 根據(jù) Wrapper 條件,查詢總記錄數(shù)
int count(Wrapper<T> queryWrapper);
參數(shù)說明
參數(shù)名 | 類型 | 描述 |
queryWrapper | Wrapper<T> | 實(shí)體對(duì)象封裝操作類 QueryWrapper |
// 鏈?zhǔn)讲樵?普通
QueryChainWrapper<T> query();
// 鏈?zhǔn)讲樵?lambda 式。注意:不支持 Kotlin
LambdaQueryChainWrapper<T> lambdaQuery();
// 示例:
query().eq("column", value).one();
lambdaQuery().eq(Entity::getId, value).list();
// 鏈?zhǔn)礁?普通
UpdateChainWrapper<T> update();
// 鏈?zhǔn)礁?lambda 式。注意:不支持 Kotlin
LambdaUpdateChainWrapper<T> lambdaUpdate();
// 示例:
update().eq("column", value).remove();
lambdaUpdate().eq(Entity::getId, value).update(entity);
更多建議: