1. 程式人生 > 實用技巧 >MyBatis-Plus的Service CRUD介面

MyBatis-Plus的Service CRUD介面

字首命名方式區分Mapper層。

get 查詢單行、remove 刪除、list 查詢集合、page 分頁

目錄

查詢一條記錄

根據 ID 查詢:T getById(Serializable id);

條件查詢wrapper。結果集,如果是多個會丟擲異常,隨機取一條加上限制條件 wrapper.last("LIMIT 1")
T getOne(Wrapper queryWrapper);

條件查詢wrapper
T getOne(Wrapper queryWrapper, boolean throwEx);

條件查詢wrapper
Map<String, Object> getMap(Wrapper queryWrapper);

條件查詢wrapper
V getObj(Wrapper queryWrapper, Function<? super Object, V> mapper);

查詢List

查詢所有:List list();

批量查詢:Collection listByIds(Collection<? extends Serializable> idList);

查詢所有:List<Map<String, Object>> listMaps();

查詢所有:List listObjs();

查詢所有: List listObjs(Function<? super Object, V> mapper);

條件查詢map
Collection listByMap(Map<String, Object> columnMap);

條件查詢wrapper
List list(Wrapper queryWrapper);

查詢條件wrapper
List<Map<String, Object>> listMaps(Wrapper queryWrapper);

條件查詢wrapper
List listObjs(Wrapper queryWrapper);

條件查詢wrapper
List listObjs(Wrapper queryWrapper, Function<? super Object, V> mapper);

分頁

無條件分頁查詢:IPage page(IPage page);

無條件分頁查詢:IPage<Map<String, Object>> pageMaps(IPage page);

條件分頁查詢:IPage page(IPage page, Wrapper queryWrapper);

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

統計

查詢總記錄數:int count();

條件查詢總記錄數wrapper
int count(Wrapper queryWrapper);

鏈式-查詢

QueryChainWrapper query();

query().eq("column", value).one();

lambda鏈式查詢(不支援 Kotlin)
LambdaQueryChainWrapper lambdaQuery();

lambdaQuery().eq(Entity::getId, value).list();

插入

選擇欄位,策略插入一條記錄:boolean save(T entity);

批量插入:boolean saveBatch(Collection entityList);

批量插入:boolean saveBatch(Collection entityList, int batchSize);

public void insertUser(){
	User user = new User();
	user.setName("xiaoming");
	user.setPassword(123456);

	int result = userService.save(user); 
	System.out.println(result);  // 受影響的行數
	System.out.println(user); // 結果會自動回填
}

插入 / 更新

TableId 註解存在更新記錄,否插入一條記錄
boolean saveOrUpdate(T entity);

根據updateWrapper嘗試更新,否繼續執行saveOrUpdate(T)方法
boolean saveOrUpdate(T entity, Wrapper updateWrapper);

批量修改插入
boolean saveOrUpdateBatch(Collection entityList);

批量修改插入
boolean saveOrUpdateBatch(Collection entityList, int batchSize);

更新

根據Id更新:boolean updateById(T entity);

批量更新:boolean updateBatchById(Collection entityList);

批量更新:boolean updateBatchById(Collection entityList, int batchSize);

條件更新wrapper(需要設定sqlset)
boolean update(Wrapper updateWrapper);

條件更新wrapper
boolean update(T entity, Wrapper updateWrapper);

刪除

根據Id刪除:boolean removeById(Serializable id);

批量刪除:boolean removeByIds(Collection<? extends Serializable> idList);

條件刪除wrapper:boolean remove(Wrapper queryWrapper);

條件刪除map:boolean removeByMap(Map<String, Object> columnMap);