学习笔记:MyBatisPlus

MyBatisPlus

1)能访问一次数据库的,就不要去访问多次数据库。
2)查询和删除用 QueryWrapper、修改用UpdateWrapper 。

1. public interface BaseMapper { }

在执行下面 语句时候,都会做 非空的判断。 如果传入的值是空,就不参与修改了。

public interface BaseMapper<T> {
 
    /**
     * 插入一条记录
     *
     * @param entity 实体对象
     */
    Integer insert(T entity);
 
    /**
     * 根据 ID 删除
     *
     * @param id 主键ID
     */
    Integer deleteById(Serializable id);
 
    /**
     * 根据 columnMap 条件,删除记录
     * map里封装 数据库一条数据的 各种KV,只要有一条没对上 就删除失败,map 只能删1条。(如果put多条数据最后匹配的生效)     
	 * 如果为null,则删除了所有的数据。
     * 
     * @param columnMap 表字段 map 对象
     */
    Integer deleteByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap);
 
    /**
     * 根据 entity 条件,删除记录
     * 如果为null,则删除了所有数据
     *
     * @param queryWrapper 实体对象封装操作类(可以为 null)
     */
    Integer delete(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
 
    /**
     * 删除(根据ID 批量删除)
     *
     * @param idList 主键ID列表(不能为 null 以及 empty)
     */
    Integer deleteBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList);
 
    /**
     * 根据 ID 修改
     * 传入的实体类对象 需要设置id(xx。setId(xx))
     * 然后再 设置需要 改的字段。
     *
     * @param entity 实体对象
     */
    Integer updateById(@Param(Constants.ENTITY) T entity);
 
    /**
     * 根据 whereEntity 条件,更新记录
     * 
     * 如果第二个参数为null,所有的数据都会被修改。
     *
     * @param entity        实体对象 (set 条件值,不能为 null)
     * @param updateWrapper 实体对象封装操作类(可以为 null,里面的 entity 用于生成 where 语句)
     */
    Integer update(@Param(Constants.ENTITY) T entity, @Param(Constants.WRAPPER) Wrapper<T> updateWrapper);
 
    /**
     * 根据 ID 查询
     *
     * @param id 主键ID
     */
    T selectById(Serializable id);
 
    /**
     * 查询(根据ID 批量查询)
     * 
     * 如果集合放入的id数据库不存在,不会报错,只是没有查到。
     *
     * @param idList 主键ID列表(不能为 null 以及 empty)
     */
    List<T> selectBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList);
 
    /**
     * 查询(根据 columnMap 条件)
     * map里封装 数据库一条数据的 各种K(写column名)V,只要有一条没对上 就查不到,map 只能查询1条。(如果put多条数据 最后匹配的生效)     
	 * 如果为null,则会查询所有的数据。
     
     * @param columnMap 表字段 map 对象
     */
    List<T> selectByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap);
 
    /**
     * 根据 Wrapper 条件,查询一条记录
     * 如果查到了多条数据 则报错。
     * 不能为null,否则报错。
     * 如果没有查到,返回null,不会报错。
     *
     * @param queryWrapper 实体对象
     */
    T selectOne(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
 
    /**
     * 根据 Wrapper 条件,查询总记录数
     *
     * 如果为null,返回所有的数据记录数.
     *
     * @param queryWrapper 实体对象
     */
    Integer selectCount(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
 
    /**
     * 根据 entity 条件,查询全部记录
     *
     * 如果为null,会查询所有的数据。
     *
     * @param queryWrapper 实体对象封装操作类(可以为 null)
     */
    List<T> selectList(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
 
    /**
     * 根据 Wrapper 条件,查询全部记录
     *
     * @param queryWrapper 实体对象封装操作类(可以为 null)
     */
    List<Map<String, Object>> selectMaps(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
 
    /**
     * 根据 Wrapper 条件,查询全部记录
     * 注意: 只返回第一个字段的值
     *
     * @param queryWrapper 实体对象封装操作类(可以为 null)
     */
    List<Object> selectObjs(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
 
    /**
     * 根据 entity 条件,查询全部记录(并翻页)
     *
     * @param page         分页查询条件(可以为 RowBounds.DEFAULT)
     * @param queryWrapper 实体对象封装操作类(可以为 null)
     */
    IPage<T> selectPage(IPage<T> page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
 
    /**
     * 

* 根据 Wrapper 条件,查询全部记录(并翻页) *

* * @param page 分页查询条件 * @param queryWrapper 实体对象封装操作类 */
IPage<Map<String, Object>> selectMapsPage(IPage<T> page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper); }

你可能感兴趣的:(学习笔记)