Mybats -Plus CRUD 介面
阿新 • • 發佈:2018-12-17
說明
- 通用 CRUD 封裝BaseMapper 介面,為 Mybatis-Plus 啟動時自動解析實體表關係對映轉換為 Mybatis 內部物件注入容器
- 泛型 T 為任意實體物件
- 引數 Serializable 為任意型別主鍵 Mybatis-Plus 不推薦使用複合主鍵約定每一張表都有自己的唯一 id 主鍵
- 物件 Wrapper 為 條件構造器
Mapper CRUD操作
insert
/**
* <p>
* 插入一條記錄
* </p>
*
* @param entity 實體物件
* @return 插入成功記錄數
*/
int insert(T entity) ;
deleteById
/**
* <p>
* 根據 ID 刪除
* </p>
*
* @param id 主鍵ID
* @return 刪除成功記錄數
*/
int deleteById(Serializable id);
deleteByMap
/**
* <p>
* 根據 columnMap 條件,刪除記錄
* </p>
*
* @param columnMap 表字段 map 物件
* @return 刪除成功記錄數
*/
int deleteByMap(@Param(Constants.COLUMN_MAP) Map< String, Object> columnMap);
delete
/**
* <p>
* 根據 entity 條件,刪除記錄
* </p>
*
* @param queryWrapper 實體物件封裝操作類(可以為 null)
* @return 刪除成功記錄數
*/
int delete(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
deleteBatchlds
/**
* <p>
* 刪除(根據ID 批量刪除)
* </p>
*
* @param idList 主鍵ID列表(不能為 null 以及 empty)
* @return 刪除成功記錄數
*/
int deleteBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList);
updateById
/**
* <p>
* 根據 ID 修改
* </p>
*
* @param entity 實體物件
* @return 修改成功記錄數
*/
int updateById(@Param(Constants.ENTITY) T entity);
update
/**
* <p>
* 根據 whereEntity 條件,更新記錄
* </p>
*
* @param entity 實體物件 (set 條件值,不能為 null)
* @param updateWrapper 實體物件封裝操作類(可以為 null,裡面的 entity 用於生成 where 語句)
* @return 修改成功記錄數
*/
int update(@Param(Constants.ENTITY) T entity, @Param(Constants.WRAPPER) Wrapper<T> updateWrapper);
selectById
/**
* <p>
* 根據 ID 查詢
* </p>
*
* @param id 主鍵ID
* @return 實體
*/
T selectById(Serializable id);
selectBatchlds
/**
* <p>
* 查詢(根據ID 批量查詢)
* </p>
*
* @param idList 主鍵ID列表(不能為 null 以及 empty)
* @return 實體集合
*/
List<T> selectBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList);
selectByMap
/**
* <p>
* 查詢(根據 columnMap 條件)
* </p>
*
* @param columnMap 表字段 map 物件
* @return 實體集合
*/
List<T> selectByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap);
selectOne
/**
* <p>
* 根據 entity 條件,查詢一條記錄
* </p>
*
* @param queryWrapper 實體物件
* @return 實體
*/
T selectOne(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
selectCount
/**
* <p>
* 根據 Wrapper 條件,查詢總記錄數
* </p>
*
* @param queryWrapper 實體物件
* @return 滿足條件記錄數
*/
Integer selectCount(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
selectList
/**
* <p>
* 根據 entity 條件,查詢全部記錄
* </p>
*
* @param queryWrapper 實體物件封裝操作類(可以為 null)
* @return 實體集合
*/
List<T> selectList(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
selectMaps
/**
* <p>
* 根據 Wrapper 條件,查詢全部記錄
* </p>
*
* @param queryWrapper 實體物件封裝操作類(可以為 null)
* @return 欄位對映物件 Map 集合
*/
List<Map<String, Object>> selectMaps(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
selectObjs
/**
* <p>
* 根據 Wrapper 條件,查詢全部記錄
* 注意: 只返回第一個欄位的值
* </p>
*
* @param queryWrapper 實體物件封裝操作類(可以為 null)
* @return 欄位對映物件集合
*/
List<Object> selectObjs(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
selectPage
/**
* <p>
* 根據 entity 條件,查詢全部記錄(並翻頁)
* </p>
*
* @param page 分頁查詢條件(可以為 RowBounds.DEFAULT)
* @param queryWrapper 實體物件封裝操作類(可以為 null)
* @return 實體分頁物件
*/
IPage<T> selectPage(IPage<T> page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
selectMapsPage
/**
* <p>
* 根據 Wrapper 條件,查詢全部記錄(並翻頁)
* </p>
*
* @param page 分頁查詢條件
* @param queryWrapper 實體物件封裝操作類
* @return 欄位對映物件 Map 分頁物件
*/
IPage<Map<String, Object>> selectMapsPage(IPage<T> page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
service CRUD介面
-
通用 Service CRUD 封裝IService 介面,進一步封裝 CRUD 採用 get 查詢單行 remove 刪除 list 查詢集合 page 分頁 字首命名方式區分 Mapper 層避免混淆,
-
泛型 T 為任意實體物件
-
建議如果存在自定義通用 Service 方法的可能,請建立自己的 IBaseService 繼承 Mybatis-Plus 提供的基類
-
物件 Wrapper 為 條件構造器
-
準備 service serviceImpl mapper
public interface Tservice extends IService<T>
public class TserviceImpl extends ServiceImpl<TMapper , T>
implements ISysRoleMenuService
public interface TMapper extends BaseMapper<T>
save
/**
* <p>
* 插入一條記錄(選擇欄位,策略插入)
* </p>
*
* @param entity 實體物件
*/
boolean save(T entity);
saveBatch
/**
* <p>
* 插入一條記錄(選擇欄位,策略插入)
* </p>
*
* @param entity 實體物件
*/
boolean save(T entity);
saveOrUpdateBatch
/**
* <p>
* 批量修改插入
* </p>
*
* @param entityList 實體物件集合
*/
boolean saveOrUpdateBatch(Collection<T> entityList);
saveOrUpdateBatch
/**
* <p>
* 批量修改插入
* </p>
*
* @param entityList 實體物件集合
* @param batchSize 每次的數量
*/
boolean saveOrUpdateBatch(Collection<T> entityList, int batchSize);
removeById
/**
* <p>
* 根據 ID 刪除
* </p>
*
* @param id 主鍵ID
*/
boolean removeById(Serializable id);
removeByMap
/**
* <p>
* 根據 columnMap 條件,刪除記錄
* </p>
*
* @param columnMap 表字段 map 物件
*/
boolean removeByMap(Map<String, Object> columnMap);
remove
/**
* <p>
* 根據 entity 條件,刪除記錄
* </p>
*
* @param queryWrapper 實體包裝類 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
*/
boolean remove(Wrapper<T> queryWrapper);
removeByIds
/**
* <p>
* 刪除(根據ID 批量刪除)
* </p>
*
* @param idList 主鍵ID列表
*/
boolean removeByIds(Collection<? extends Serializable> idList);
updateById
/**
* <p>
* 根據 ID 選擇修改
* </p>
*
* @param entity 實體物件
*/
boolean updateById(T entity);
update
/**
* <p>
* 根據 whereEntity 條件,更新記錄
* </p>
*
* @param entity 實體物件
* @param updateWrapper 實體物件封裝操作類 {@link com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper}
*/
boolean update(T entity, Wrapper<T> updateWrapper);
updateBatchById
/**
* <p>
* 根據ID 批量更新
* </p>
*
* @param entityList 實體物件集合
* @param batchSize 更新批次數量
*/
boolean updateBatchById(Collection<T> entityList, int batchSize);
saveOrUpdate
/**
* <p>
* TableId 註解存在更新記錄,否插入一條記錄
* </p>
*
* @param entity 實體物件
*/
boolean saveOrUpdate(T entity);
getById
/**
* <p>
* 根據 ID 查詢
* </p>
*
* @param id 主鍵ID
*/
T getById(Serializable id);
listByIds
/**
* <p>
* 查詢(根據ID 批量查詢)
* </p>
*
* @param idList 主鍵ID列表
*/
Collection<T> listByIds(Collection<? extends Serializable> idList);
listByMap
/**
* <p>
* 查詢(根據 columnMap 條件)
* </p>
*
* @param columnMap 表字段 map 物件
*/
Collection<T> listByMap(Map<String, Object> columnMap);
getOne
/**
* <p>
* 根據 Wrapper,查詢一條記錄
* </p>
*
* @param queryWrapper 實體物件封裝操作類 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
* @param throwEx 有多個 result 是否丟擲異常
*/
T getOne(Wrapper<T> queryWrapper, boolean throwEx);
getMap
/**
* <p>
* 根據 Wrapper,查詢一條記錄
* </p>
*
* @param queryWrapper 實體物件封裝操作類 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
*/
Map<String, Object> getMap(Wrapper<T> queryWrapper);
getObj
/**
* <p>
* 根據 Wrapper,查詢一條記錄
* </p>
*
* @param queryWrapper 實體物件封裝操作類 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
*/
Object getObj(Wrapper<T> queryWrapper);
count
/**
* <p>
* 根據 Wrapper 條件,查詢總記錄數
* </p>
*
* @param queryWrapper 實體物件封裝操作類 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
*/
int count(Wrapper<T> queryWrapper);
list
/**
* <p>
* 查詢列表
* </p>
*
* @param queryWrapper 實體物件封裝操作類 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
*/
List<T> list(Wrapper<T> queryWrapper);
page
/**
* <p>
* 翻頁查詢
* </p>
*
* @param page 翻頁物件
* @param queryWrapper 實體物件封裝操作類 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
*/
IPage<T> page(IPage<T> page, Wrapper<T> queryWrapper);
listMaps
/**
* <p>
* 查詢列表
* </p>
*
* @param queryWrapper 實體物件封裝操作類 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
*/
List<Map<String, Object>> listMaps(Wrapper<T> queryWrapper);
listObjs
/**
* <p>
* 根據 Wrapper 條件,查詢全部記錄
* </p>
*
* @param queryWrapper 實體物件封裝操作類 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
*/
List<Object> listObjs(Wrapper<T> queryWrapper);
pageMaps
/**
* <p>
* 翻頁查詢
* </p>
*
* @param page 翻頁物件
* @param queryWrapper 實體物件封裝操作類 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
*/
IPage<Map<String, Object>> pageMaps(IPage<T> page, Wrapper<T> queryWrapper);