MyBatis-Plus使用(2)-CRUD接口


參考文檔:https://mybatis.plus/guide/crud-interface.html

MyBatis-Plus自帶的CRUD方法分為Mapper層和Service層,大多數功能是重疊的,本文章只說明Service層CRUD接口

說明:

  通用 Service CRUD 封裝IService接口,進一步封裝 CRUD 采用 get 查詢單行 remove 刪除 list 查詢集合 page 分頁 前綴命名方式區分 Mapper 層避免混淆,

  泛型 T 為任意實體對象

  建議如果存在自定義通用 Service 方法的可能,請創建自己的 IBaseService 繼承 Mybatis-Plus 提供的基類

  對象 Wrapper 為 條件構造器

 

1.  新增方法 

1.1 save

/**
 * 插入一條記錄(選擇字段,策略插入)
 * @param entity 實體對象
 */
boolean save(T entity);

1.2 saveBatch

/**
 * 插入(批量)
 * @param entityList 實體對象集合
 */
boolean saveBatch(Collection<T> entityList);

/**
 * 插入(批量)
 * @param entityList 實體對象集合
 * @param batchSize  插入批次數量
 */
boolean saveBatch(Collection<T> entityList, int batchSize);

1.3 saveOrUpdate

/**
 * TableId 注解存在更新記錄,否插入一條記錄
 * @param entity 實體對象
 */
boolean saveOrUpdate(T entity);

1.4 saveOrUpdateBatch

/**
 * 批量修改插入
 * @param entityList 實體對象集合
 */
boolean saveOrUpdateBatch(Collection<T> entityList);

/**
 * 批量修改插入
 * @param entityList 實體對象集合
 * @param batchSize  每次的數量
 */
boolean saveOrUpdateBatch(Collection<T> entityList, int batchSize);

 

2. 刪除方法 

2.1 remove

/**
 * 根據 entity 條件,刪除記錄
 * @param queryWrapper 實體包裝類 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
 */
boolean remove(Wrapper<T> queryWrapper);

2.2 removeById

/**
 * 根據 ID 刪除
 * @param id 主鍵ID
 */
boolean removeById(Serializable id);

2.3 removeByIds

/**
 * 刪除(根據ID 批量刪除)
 * @param idList 主鍵ID列表
 */
boolean removeByIds(Collection<? extends Serializable> idList);

2.4 removeByMap

/**
 * 根據 columnMap 條件,刪除記錄
 * @param columnMap 表字段 map 對象
 */
boolean removeByMap(Map<String, Object> columnMap);

 

3. 修改方法

3.1 update

/**
 * 根據 whereEntity 條件,更新記錄
 * @param entity        實體對象
 * @param updateWrapper 實體對象封裝操作類 {@link com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper}
 */
boolean update(T entity, Wrapper<T> updateWrapper);

3.2 updateById

/**
 * 根據 ID 選擇修改
 * @param entity 實體對象
 */
boolean updateById(T entity);

3.3 updateBatchById

/**
 * 根據ID 批量更新
 * @param entityList 實體對象集合
 * @param batchSize  更新批次數量
 */
boolean updateBatchById(Collection<T> entityList, int batchSize);

 

4. 查詢方法

4.1 getById

/**
 * 根據 ID 查詢
 * @param id 主鍵ID
 */
T getById(Serializable id);

4.2 getOne

/**
 * 根據 Wrapper,查詢一條記錄
 * 結果集,如果是多個會拋出異常,隨機取一條加上限制條件 wrapper.last("LIMIT 1")
 *
 * @param queryWrapper 實體對象封裝操作類 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
 */
T getOne(Wrapper<T> queryWrapper);

/**
 * 根據 Wrapper,查詢一條記錄
 * @param queryWrapper 實體對象封裝操作類 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
 * @param throwEx      有多個 result 是否拋出異常
 */
T getOne(Wrapper<T> queryWrapper, boolean throwEx);

4.2 getMap

/**
 * 根據 Wrapper,查詢一條記錄,返回Map格式
 * @param queryWrapper 實體對象封裝操作類 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
 */
Map<String, Object> getMap(Wrapper<T> queryWrapper);

4.3 getObj

/**
 * 根據 Wrapper,查詢一條記錄
 * @param queryWrapper 實體對象封裝操作類 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
 */
Object getObj(Wrapper<T> queryWrapper);

4.4 count

/**
 * 根據 Wrapper 條件,查詢總記錄數
 * @param queryWrapper 實體對象封裝操作類 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
 */
int count(Wrapper<T> queryWrapper);

4.5 list

/**
 * 查詢列表
 * @param queryWrapper 實體對象封裝操作類 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
 */
List<T> list(Wrapper<T> queryWrapper);

4.6 listMaps

/**
 * 查詢列表
 * @param queryWrapper 實體對象封裝操作類 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
 */
List<Map<String, Object>> listMaps(Wrapper<T> queryWrapper);

4.7 listObjs

/**
 * 根據 Wrapper 條件,查詢全部記錄
 * @param queryWrapper 實體對象封裝操作類 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
 */
List<Object> listObjs(Wrapper<T> queryWrapper);

4.8 page

/**
 * 翻頁查詢
 * @param page         翻頁對象
 * @param queryWrapper 實體對象封裝操作類 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
 */
IPage<T> page(IPage<T> page, Wrapper<T> queryWrapper);

4.9 pageMaps

/**
 * 翻頁查詢
 * @param page         翻頁對象
 * @param queryWrapper 實體對象封裝操作類 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
 */
IPage<Map<String, Object>> pageMaps(IPage<T> page, Wrapper<T> queryWrapper);

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM