MybatisPlus

MybatisPlus

导入mybatis所需要的Maven坐标

<dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.0</version>
</dependency>

雪花算法

SnowFlake算法是Twitter开源的分布式id生成算法 其核心思想就是:使用一个64bit的long型数字作为全局唯一id在分布式系统中应用十分广泛 且ID引入了时间戳 基本上保持自增的

这64个bit中其中 一个bit是不用的 然后用其中的41bit作为毫秒数 用10bit作为工作机器id 12bit作为序列号

主键自增

我们需要配置 主键自增

实例中的id对应数据库中的主键(uuid,自增id 雪花算法 redis zookeeper)

实体类字段上@TableId(type-IdType.AUTO)

TableName("表名)

TableId表名属性为表中的主键若属性名称为默认id

TableFieId(“字段”)当实体类属性与表字段不一致时可以用来声明

MP增加方法

// 插入一条记录
int insert(T entity);

MP查询部分方法

// 根据 ID 查询
T selectById(Serializable id);

// 根据 entity 条件,查询一条记录
T selectOne(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);

// 查询(根据ID 批量查询)
List<T> selectBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList);

// 根据 entity 条件,查询全部记录
List<T> selectList(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);

// 查询(根据 columnMap 条件)
List<T> selectByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap);

// 根据 Wrapper 条件,查询全部记录
List<Map<String, Object>> selectMaps(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);

// 根据 Wrapper 条件,查询全部记录。注意: 只返回第一个字段的值
List<Object> selectObjs(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);

// 根据 entity 条件,查询全部记录(并翻页)
IPage<T> selectPage(IPage<T> page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);

// 根据 Wrapper 条件,查询全部记录(并翻页)
IPage<Map<String, Object>> selectMapsPage(IPage<T> page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);

// 根据 Wrapper 条件,查询总记录数
Integer selectCount(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);

MP删除方法

// 根据 entity 条件,删除记录
int delete(@Param(Constants.WRAPPER) Wrapper<T> wrapper);

// 删除(根据ID 批量删除)
int deleteBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList);

// 根据 ID 删除
int deleteById(Serializable id);

// 根据 columnMap 条件,删除记录
int deleteByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap);

MP更新方法

// 根据 whereEntity 条件,更新记录
int update(@Param(Constants.ENTITY) T entity, @Param(Constants.WRAPPER) Wrapper<T> updateWrapper);

// 根据 ID 修改
int updateById(@Param(Constants.ENTITY) T entity);

条件构造器(Wrapper)

十分重要: Wrapper

我们写一些复杂的sql可以用它完成

1.条件构造器关系介绍

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wjr7egSV-1638759940336)(C:%5CUsers%5C86152%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20211206095013012.png)]

条件构造器关系介绍:

上图绿色框为抽象类abstract

蓝色框为正常class类 可new对象

黄色箭头指向为父子类关系 箭头指向为父类

wapper介绍:

Wrapper:条件构造抽象类 最顶端的父类

AbstractWrapper: 用于查询条件封装 生成sql的where条件

QueryWrapper: Entity对象封装操作类 不是用lambda语法

UpdateWeapper: Update条件封装 用于Entity对象更新操作

AbstractLambdaWrapper: Lambda语法使用Wrapper统一处理解析lambda获取column

LambdaQueryWrapper:看名称也能明白就是用于Wrapper统一处理解析lambda获取column

LambdaUpdateWrapper: Lambda更新封装wrapper

项目实例

img

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值