mybatis-plus-方法
阿新 • • 發佈:2018-12-26
/** * Copyright (c) 2011-2016, hubin ([email protected]). * <p> * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * <p> * http://www.apache.org/licenses/LICENSE-2.0 * <p> * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package com.baomidou.mybatisplus.service; import java.io.Serializable; import java.util.Collection; import java.util.List; import java.util.Map; import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.plugins.Page; /** * <p> * 頂級 Service * </p> * * @author hubin * @Date 2016-04-20 */ public interface IService<T> { /** * <p> * 插入一條記錄(選擇欄位,策略插入) * </p> * * @param entity 實體物件 * @return boolean */ boolean insert(T entity); /** * <p> * 插入一條記錄(全部欄位) * </p> * * @param entity 實體物件 * @return boolean */ boolean insertAllColumn(T entity); /** * <p> * 插入(批量),該方法不適合 Oracle * </p> * * @param entityList 實體物件列表 * @return boolean */ boolean insertBatch(List<T> entityList); /** * <p> * 插入(批量) * </p> * * @param entityList 實體物件列表 * @param batchSize 插入批次數量 * @return boolean */ boolean insertBatch(List<T> entityList, int batchSize); /** * <p> * 批量修改插入 * </p> * * @param entityList 實體物件列表 * @return boolean */ boolean insertOrUpdateBatch(List<T> entityList); /** * <p> * 批量修改插入 * </p> * * @param entityList 實體物件列表 * @param batchSize * @return boolean */ boolean insertOrUpdateBatch(List<T> entityList, int batchSize); /** * <p> * 批量修改或插入全部欄位 * </p> * * @param entityList 實體物件列表 * @return boolean */ boolean insertOrUpdateAllColumnBatch(List<T> entityList); /** * 批量修改或插入全部欄位 * * @param entityList 實體物件列表 * @param batchSize * @return boolean */ boolean insertOrUpdateAllColumnBatch(List<T> entityList, int batchSize); /** * <p> * 根據 ID 刪除 * </p> * * @param id 主鍵ID * @return boolean */ boolean deleteById(Serializable id); /** * <p> * 根據 columnMap 條件,刪除記錄 * </p> * * @param columnMap 表字段 map 物件 * @return boolean */ boolean deleteByMap(Map<String, Object> columnMap); /** * <p> * 根據 entity 條件,刪除記錄 * </p> * * @param wrapper 實體包裝類 {@link Wrapper} * @return boolean */ boolean delete(Wrapper<T> wrapper); /** * <p> * 刪除(根據ID 批量刪除) * </p> * * @param idList 主鍵ID列表 * @return boolean */ boolean deleteBatchIds(Collection<? extends Serializable> idList); /** * <p> * 根據 ID 選擇修改 * </p> * * @param entity 實體物件 * @return boolean */ boolean updateById(T entity); /** * <p> * 根據 ID 修改全部欄位 * </p> * * @param entity 實體物件 * @return boolean */ boolean updateAllColumnById(T entity); /** * <p> * 根據 whereEntity 條件,更新記錄 * </p> * * @param entity 實體物件 * @param wrapper 實體包裝類 {@link Wrapper} * @return boolean */ boolean update(T entity, Wrapper<T> wrapper); /** * <p> * 根據ID 批量更新 * </p> * * @param entityList 實體物件列表 * @return boolean */ boolean updateBatchById(List<T> entityList); /** * <p> * 根據ID 批量更新 * </p> * * @param entityList 實體物件列表 * @param batchSize 更新批次數量 * @return boolean */ boolean updateBatchById(List<T> entityList, int batchSize); /** * <p> * 根據ID 批量更新全部欄位 * </p> * * @param entityList 實體物件列表 * @return boolean */ boolean updateAllColumnBatchById(List<T> entityList); /** * <p> * 根據ID 批量更新全部欄位 * </p> * * @param entityList 實體物件列表 * @param batchSize 更新批次數量 * @return boolean */ boolean updateAllColumnBatchById(List<T> entityList, int batchSize); /** * <p> * TableId 註解存在更新記錄,否插入一條記錄 * </p> * * @param entity 實體物件 * @return boolean */ boolean insertOrUpdate(T entity); /** * 插入或修改一條記錄的全部欄位 * * @param entity 實體物件 * @return boolean */ boolean insertOrUpdateAllColumn(T entity); /** * <p> * 根據 ID 查詢 * </p> * * @param id 主鍵ID * @return T */ T selectById(Serializable id); /** * <p> * 查詢(根據ID 批量查詢) * </p> * * @param idList 主鍵ID列表 * @return List<T> */ List<T> selectBatchIds(Collection<? extends Serializable> idList); /** * <p> * 查詢(根據 columnMap 條件) * </p> * * @param columnMap 表字段 map 物件 * @return List<T> */ List<T> selectByMap(Map<String, Object> columnMap); /** * <p> * 根據 Wrapper,查詢一條記錄 * </p> * * @param wrapper 實體物件 * @return T */ T selectOne(Wrapper<T> wrapper); /** * <p> * 根據 Wrapper,查詢一條記錄 * </p> * * @param wrapper {@link Wrapper} * @return Map<String,Object> */ Map<String, Object> selectMap(Wrapper<T> wrapper); /** * <p> * 根據 Wrapper,查詢一條記錄 * </p> * * @param wrapper {@link Wrapper} * @return Object */ Object selectObj(Wrapper<T> wrapper); /** * <p> * 根據 Wrapper 條件,查詢總記錄數 * </p> * * @param wrapper 實體物件 * @return int */ int selectCount(Wrapper<T> wrapper); /** * <p> * 查詢列表 * </p> * * @param wrapper 實體包裝類 {@link Wrapper} * @return */ List<T> selectList(Wrapper<T> wrapper); /** * <p> * 翻頁查詢 * </p> * * @param page 翻頁物件 * @return */ Page<T> selectPage(Page<T> page); /** * <p> * 查詢列表 * </p> * * @param wrapper {@link Wrapper} * @return */ List<Map<String, Object>> selectMaps(Wrapper<T> wrapper); /** * <p> * 根據 Wrapper 條件,查詢全部記錄 * </p> * * @param wrapper 實體物件封裝操作類(可以為 null) * @return List<Object> */ List<Object> selectObjs(Wrapper<T> wrapper); /** * <p> * 翻頁查詢 * </p> * * @param page 翻頁物件 * @param wrapper {@link Wrapper} * @return */ @SuppressWarnings("rawtypes") Page<Map<String, Object>> selectMapsPage(Page page, Wrapper<T> wrapper); /** * <p> * 翻頁查詢 * </p> * * @param page 翻頁物件 * @param wrapper 實體包裝類 {@link Wrapper} * @return */ Page<T> selectPage(Page<T> page, Wrapper<T> wrapper); }