MyBatis-Plus 3 笔记

MyBatis-Plus 3.x 文档手册:https://www.bookstack.cn/read/mybatis-plus-3.x/bdd3a209a7eabb35.md 

一、注解

1、@TableName 表名注解

当你的mapper 集成了 mybatis plus 的BaseMapper时 这个注解让你的实体与表名建立对应关系

2、@TableId  主键注解

 IdType:

3、@TableField 非主键字段注解

value : 指定数据库表对应字段名称(注意:这个别名只有在使用mybatis-plug自动的sql才行,自己在xml里写的这种方式无效

exist :数据库表中是否存在字段名,默认为true, 为false时,plus会忽略该字段

4、@Version  乐观锁注解、标记 在字段上

5、@EnumValue 通枚举类注解(注解在枚举字段上)

二、BaseMapper CRUD接口

1、insert 返回操作成功的记录数量

    /**
     * 插入一条记录
     *
     * @param entity 实体对象
     */
    int insert(T entity);

2、deleteById 返回操作成功的记录数量

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

3、deleteByMap

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

使用例子

    Map<String,Object> map = new HashMap<>();
    map.put("user_id","用户id");//map key为表中字段 
    placeInfoMapper.deleteByMap(map);

4、delete

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

使用例子

    QueryWrapper<PlaceInfo> wrapper = new QueryWrapper();
    wrapper.eq("user_id","1");
    placeInfoMapper.delete(wrapper);

6、deleteBatchIds 传入List

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

7、updateById   为null 的字段不会更新,“”空字符会更新

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

 添加配置 可以将字段更新为null

global-config:
  banner: false
  db-config:
    update-strategy: ignored

 

使用例子

    PlaceInfo entity = new PlaceInfo();
    entity.setId("36ede941c8db0c0a874ca1a3787da800");
    entity.setUserId("用户修改updateById22");
    placeInfoMapper.updateById(entity);

//执行sql 日志
Preparing:   UPDATE place_info SET user_id=? WHERE id=? 
Parameters: 用户修改updateById22(String), 36ede941c8db0c0a874ca1a3787da800(String)

8、update 为null 的字段不会更新,“”空字符会更新

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

使用例子

     QueryWrapper<PlaceInfo> queryWrapper = new QueryWrapper<>();
     PlaceInfo entity2 = new PlaceInfo();
     entity2.setUserId("update修改2");
     queryWrapper.eq("id","6660bb30766ca6678bd43f6360f70cdb");
     placeInfoMapper.update(entity2,queryWrapper);

//执行sql 日志
Preparing:  UPDATE place_info SET user_id=? WHERE id = ? 
Parameters: update修改2(String), 6660bb30766ca6678bd43f6360f70cdb(String)

9、查询相关的方法类似 再代码中引入MyBatis-Plus 后下载源码查看BaseMapper 接口中的方法

三、条件构造器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值