mybatis-plus Mapper CRUD 接口

Mybatis Plus Mapper源碼接口解析 

說明:

  • 通用 CRUD 封裝BaseMapper接口,爲 Mybatis-Plus 啓動時自動解析實體表關係映射轉換爲 Mybatis 內部對象注入容器
  • 泛型 T 爲任意實體對象
  • 參數 Serializable 爲任意類型主鍵 Mybatis-Plus 不推薦使用複合主鍵約定每一張表都有自己的唯一 id 主鍵
  • 對象 Wrapper 爲 條件構造器
/**
 * <p>
 * 插入一條記錄
 * </p>
 *
 * @param entity 實體對象
 * @return 插入成功記錄數
 */
int insert(T entity);

/**
 * <p>
 * 根據 ID 刪除
 * </p>
 *
 * @param id 主鍵ID
 * @return 刪除成功記錄數
 */
int deleteById(Serializable id);

/**
 * <p>
 * 根據 columnMap 條件,刪除記錄
 * </p>
 *
 * @param columnMap 表字段 map 對象
 * @return 刪除成功記錄數
 */
int deleteByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap);

/**
 * <p>
 * 根據 entity 條件,刪除記錄
 * </p>
 *
 * @param wrapper 實體對象封裝操作類(可以爲 null)
 * @return 刪除成功記錄數
 */
int delete(@Param(Constants.WRAPPER) Wrapper<T> wrapper);

/**
 * <p>
 * 刪除(根據ID 批量刪除)
 * </p>
 *
 * @param idList 主鍵ID列表(不能爲 null 以及 empty)
 * @return 刪除成功記錄數
 */
int deleteBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList);

/**
 * <p>
 * 根據 ID 修改
 * </p>
 *
 * @param entity 實體對象
 * @return 修改成功記錄數
 */
int updateById(@Param(Constants.ENTITY) T entity);

/**
 * <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);

/**
 * <p>
 * 根據 ID 查詢
 * </p>
 *
 * @param id 主鍵ID
 * @return 實體
 */
T selectById(Serializable id);

/**
 * <p>
 * 查詢(根據ID 批量查詢)
 * </p>
 *
 * @param idList 主鍵ID列表(不能爲 null 以及 empty)
 * @return 實體集合
 */
List<T> selectBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList);

/**
 * <p>
 * 查詢(根據 columnMap 條件)
 * </p>
 *
 * @param columnMap 表字段 map 對象
 * @return 實體集合
 */
List<T> selectByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap);


/**
 * <p>
 * 根據 entity 條件,查詢一條記錄
 * </p>
 * 如果邏輯非唯一該方法不會自動替您 limit 1 你需要 wrapper.last("limit 1") 設置唯一性。
 * @param queryWrapper 實體對象
 * @return 實體
 */
T selectOne(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);

/**
 * <p>
 * 根據 Wrapper 條件,查詢總記錄數
 * </p>
 *
 * @param queryWrapper 實體對象
 * @return 滿足條件記錄數
 */
Integer selectCount(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);

/**
 * <p>
 * 根據 entity 條件,查詢全部記錄
 * </p>
 *
 * @param queryWrapper 實體對象封裝操作類(可以爲 null)
 * @return 實體集合
 */
List<T> selectList(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);

/**
 * <p>
 * 根據 Wrapper 條件,查詢全部記錄
 * </p>
 *
 * @param queryWrapper 實體對象封裝操作類(可以爲 null)
 * @return 字段映射對象 Map 集合
 */
List<Map<String, Object>> selectMaps(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);

/**
 * <p>
 * 根據 Wrapper 條件,查詢全部記錄
 * 注意: 只返回第一個字段的值
 * </p>
 *
 * @param queryWrapper 實體對象封裝操作類(可以爲 null)
 * @return 字段映射對象集合
 */
List<Object> selectObjs(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);

/**
 * <p>
 * 根據 entity 條件,查詢全部記錄(並翻頁)
 * </p>
 *
 * @param page         分頁查詢條件(可以爲 RowBounds.DEFAULT)
 * @param queryWrapper 實體對象封裝操作類(可以爲 null)
 * @return 實體分頁對象
 */
IPage<T> selectPage(IPage<T> page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);

/**
 * <p>
 * 根據 Wrapper 條件,查詢全部記錄(並翻頁)
 * </p>
 *
 * @param page         分頁查詢條件
 * @param queryWrapper 實體對象封裝操作類
 * @return 字段映射對象 Map 分頁對象
 */
IPage<Map<String, Object>> selectMapsPage(IPage<T> page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章