All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.gccloud.starter.common.mybatis.dao.BaseDao Maven / Gradle / Ivy

package com.gccloud.starter.common.mybatis.dao;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Param;

import java.io.Serializable;
import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * @ClassName BaseDao
 * @Description BaseDao
 * @Author maoshufeng
 * @Date 2020-06-16 11:09
 * @Version 1.0
 */
public interface BaseDao extends BaseMapper {
    /**
     * 根据ID删除
     *
     * @param id
     * @return
     */
    int deleteByIdWithDp(Serializable id);

    /**
     * 根据 columnMap 条件,删除记录
     *
     * @param columnMap 表字段 map 对象
     */
    int deleteByMapWithDp(@Param(Constants.COLUMN_MAP) Map columnMap);

    /**
     * 根据 entity 条件,删除记录
     *
     * @param wrapper 实体对象封装操作类(可以为 null)
     */
    int deleteWithDp(@Param(Constants.WRAPPER) Wrapper wrapper);

    /**
     * 删除(根据ID 批量删除)
     *
     * @param idList 主键ID列表(不能为 null 以及 empty)
     */
    int deleteBatchIdsWithDp(@Param(Constants.COLLECTION) Collection idList);

    /**
     * 根据 ID 修改
     *
     * @param entity 实体对象
     */
    int updateByIdWithDp(@Param(Constants.ENTITY) T entity);

    /**
     * 根据 whereEntity 条件,更新记录
     *
     * @param entity        实体对象 (set 条件值,可以为 null)
     * @param updateWrapper 实体对象封装操作类(可以为 null,里面的 entity 用于生成 where 语句)
     */
    int updateWithDp(@Param(Constants.ENTITY) T entity, @Param(Constants.WRAPPER) Wrapper updateWrapper);

    /**
     * 根据 ID 查询
     *
     * @param id 主键ID
     */
    T selectByIdWithDp(Serializable id);

    /**
     * 查询(根据 columnMap 条件)
     *
     * @param columnMap 表字段 map 对象
     */
    List selectByMapWithDp(@Param(Constants.COLUMN_MAP) Map columnMap);


    /**
     * 查询(根据ID 批量查询)
     *
     * @param idList 主键ID列表(不能为 null 以及 empty)
     */
    List selectBatchIdsWithDp(@Param(Constants.COLLECTION) Collection idList);

    /**
     * 根据 entity 条件,查询一条记录
     *
     * @param queryWrapper 实体对象封装操作类(可以为 null)
     */
    T selectOneWithDp(@Param(Constants.WRAPPER) Wrapper queryWrapper);

    /**
     * 根据 Wrapper 条件,查询总记录数
     *
     * @param queryWrapper 实体对象封装操作类(可以为 null)
     */
    Integer selectCountWithDp(@Param(Constants.WRAPPER) Wrapper queryWrapper);

    /**
     * 根据 entity 条件,查询全部记录
     *
     * @param queryWrapper 实体对象封装操作类(可以为 null)
     */
    List selectListWithDp(@Param(Constants.WRAPPER) Wrapper queryWrapper);

    /**
     * 根据 Wrapper 条件,查询全部记录
     *
     * @param queryWrapper 实体对象封装操作类(可以为 null)
     */
    List> selectMapsWithDp(@Param(Constants.WRAPPER) Wrapper queryWrapper);

    /**
     * 根据 Wrapper 条件,查询全部记录
     * 

注意: 只返回第一个字段的值

* * @param queryWrapper 实体对象封装操作类(可以为 null) */ List selectObjsWithDp(@Param(Constants.WRAPPER) Wrapper queryWrapper); /** * 根据 entity 条件,查询全部记录(并翻页) * * @param page 分页查询条件(可以为 RowBounds.DEFAULT) * @param queryWrapper 实体对象封装操作类(可以为 null) */ > E selectPageWithDp(E page, @Param(Constants.WRAPPER) Wrapper queryWrapper); /** * 根据 Wrapper 条件,查询全部记录(并翻页) * * @param page 分页查询条件 * @param queryWrapper 实体对象封装操作类 */ >> E selectMapsPageWithDp(E page, @Param(Constants.WRAPPER) Wrapper queryWrapper); }