zoukankan      html  css  js  c++  java
  • MyBatis-Plus使用(2)-CRUD接口

    参考文档:https://mybatis.plus/guide/crud-interface.html

    MyBatis-Plus自带的CRUD方法分为Mapper层和Service层,大多数功能是重叠的,本文章只说明Service层CRUD接口

    说明:

      通用 Service CRUD 封装IService接口,进一步封装 CRUD 采用 get 查询单行 remove 删除 list 查询集合 page 分页 前缀命名方式区分 Mapper 层避免混淆,

      泛型 T 为任意实体对象

      建议如果存在自定义通用 Service 方法的可能,请创建自己的 IBaseService 继承 Mybatis-Plus 提供的基类

      对象 Wrapper 为 条件构造器

    1.  新增方法 

    1.1 save

    /**
     * 插入一条记录(选择字段,策略插入)
     * @param entity 实体对象
     */
    boolean save(T entity);

    1.2 saveBatch

    /**
     * 插入(批量)
     * @param entityList 实体对象集合
     */
    boolean saveBatch(Collection<T> entityList);
    
    /**
     * 插入(批量)
     * @param entityList 实体对象集合
     * @param batchSize  插入批次数量
     */
    boolean saveBatch(Collection<T> entityList, int batchSize);

    1.3 saveOrUpdate

    /**
     * TableId 注解存在更新记录,否插入一条记录
     * @param entity 实体对象
     */
    boolean saveOrUpdate(T entity);

    1.4 saveOrUpdateBatch

    /**
     * 批量修改插入
     * @param entityList 实体对象集合
     */
    boolean saveOrUpdateBatch(Collection<T> entityList);
    
    /**
     * 批量修改插入
     * @param entityList 实体对象集合
     * @param batchSize  每次的数量
     */
    boolean saveOrUpdateBatch(Collection<T> entityList, int batchSize);

    2. 删除方法 

    2.1 remove

    /**
     * 根据 entity 条件,删除记录
     * @param queryWrapper 实体包装类 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
     */
    boolean remove(Wrapper<T> queryWrapper);

    2.2 removeById

    /**
     * 根据 ID 删除
     * @param id 主键ID
     */
    boolean removeById(Serializable id);

    2.3 removeByIds

    /**
     * 删除(根据ID 批量删除)
     * @param idList 主键ID列表
     */
    boolean removeByIds(Collection<? extends Serializable> idList);

    2.4 removeByMap

    /**
     * 根据 columnMap 条件,删除记录
     * @param columnMap 表字段 map 对象
     */
    boolean removeByMap(Map<String, Object> columnMap);

    3. 修改方法

    3.1 update

    /**
     * 根据 whereEntity 条件,更新记录
     * @param entity        实体对象
     * @param updateWrapper 实体对象封装操作类 {@link com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper}
     */
    boolean update(T entity, Wrapper<T> updateWrapper);

    3.2 updateById

    /**
     * 根据 ID 选择修改
     * @param entity 实体对象
     */
    boolean updateById(T entity);

    3.3 updateBatchById

    /**
     * 根据ID 批量更新
     * @param entityList 实体对象集合
     * @param batchSize  更新批次数量
     */
    boolean updateBatchById(Collection<T> entityList, int batchSize);

    4. 查询方法

    4.1 getById

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

    4.2 getOne

    /**
     * 根据 Wrapper,查询一条记录
     * 结果集,如果是多个会抛出异常,随机取一条加上限制条件 wrapper.last("LIMIT 1")
     *
     * @param queryWrapper 实体对象封装操作类 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
     */
    T getOne(Wrapper<T> queryWrapper);
    
    /**
     * 根据 Wrapper,查询一条记录
     * @param queryWrapper 实体对象封装操作类 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
     * @param throwEx      有多个 result 是否抛出异常
     */
    T getOne(Wrapper<T> queryWrapper, boolean throwEx);

    4.2 getMap

    /**
     * 根据 Wrapper,查询一条记录,返回Map格式
     * @param queryWrapper 实体对象封装操作类 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
     */
    Map<String, Object> getMap(Wrapper<T> queryWrapper);

    4.3 getObj

    /**
     * 根据 Wrapper,查询一条记录
     * @param queryWrapper 实体对象封装操作类 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
     */
    Object getObj(Wrapper<T> queryWrapper);

    4.4 count

    /**
     * 根据 Wrapper 条件,查询总记录数
     * @param queryWrapper 实体对象封装操作类 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
     */
    int count(Wrapper<T> queryWrapper);

    4.5 list

    /**
     * 查询列表
     * @param queryWrapper 实体对象封装操作类 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
     */
    List<T> list(Wrapper<T> queryWrapper);

    4.6 listMaps

    /**
     * 查询列表
     * @param queryWrapper 实体对象封装操作类 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
     */
    List<Map<String, Object>> listMaps(Wrapper<T> queryWrapper);

    4.7 listObjs

    /**
     * 根据 Wrapper 条件,查询全部记录
     * @param queryWrapper 实体对象封装操作类 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
     */
    List<Object> listObjs(Wrapper<T> queryWrapper);

    4.8 page

    /**
     * 翻页查询
     * @param page         翻页对象
     * @param queryWrapper 实体对象封装操作类 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
     */
    IPage<T> page(IPage<T> page, Wrapper<T> queryWrapper);

    4.9 pageMaps

    /**
     * 翻页查询
     * @param page         翻页对象
     * @param queryWrapper 实体对象封装操作类 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
     */
    IPage<Map<String, Object>> pageMaps(IPage<T> page, Wrapper<T> queryWrapper);
  • 相关阅读:
    sqlserver2005分页
    windows计划任务
    sqlserver 2005 通信格式
    sqlserver 导出数据到excel
    所有连接sqlserver 2005 数据库的驱动程序
    Sql 2000 中行转列的查询方法
    [转] ASP.NET中使用javascript
    [转]17种常用正则表达式
    正则式正反向预编译(实战)
    正则表达式的正反向预编译
  • 原文地址:https://www.cnblogs.com/huanshilang/p/11977930.html
Copyright © 2011-2022 走看看