Mybatis-Plus

Mybatis-Plus

1. 介绍

1. 简介

MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为
简化开发、提高效率而生。

2. 特性

  • 无侵入:只做增强不做改变,引入不会对现有工程产生影响
  • 损耗小:启动即自动注入基本CRUD
  • 简化CRUD操作:内置通用 Mapper、通用 Service ,仅可通过少量配置即可实现单表大部分CRUD
  • 支持 Lambda 表达式
  • 主键自动生成
  • 支持 ActiveRecord 模式
  • 全局通用操作
  • 代码生成器
  • 内置分页插件,且支持多种数据库
  • 内置性能分析插件、全局拦截插件

3. 框架结构

4. 代码及文档地址

官方地址: http://mp.baomidou.com
代码发布地址:
Github: https://github.com/baomidou/mybatis-plus
Gitee: https://gitee.com/baomidou/mybatis-plus
文档发布地址: https://baomidou.com/pages/24112f

2. 常用注解

  1. @TableName

MyBatis-Plus在确定操作的表时,由BaseMapper的泛型决定,即实体类型决定,且默认操作的表名和实体类型的类名一致 ,此注解的作用是标识实体类对应的表 。

全局配置表前缀

mybatis-plus:
	configuration:
		# 配置MyBatis日志
		log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
	global-config:
		db-config:
		# 配置MyBatis-Plus操作表的默认前缀
		table-prefix: t_
  1. @TableId

通过@TableId注解的value属性,指定表中的主键字段

MyBatis-Plus在实现CRUD时,会默认将id作为主键列,并在插入数据时,默认基于雪花算法的策略生成id

type属性

全局主键策略

mybatis-plus:
	configuration:
		# 配置MyBatis日志
		log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
	global-config:
		db-config:
		# 配置MyBatis-Plus操作表的默认前缀
		table-prefix: t_
		# 主键生成策略
		id-type: auto

数据库分表

单表数据拆分方式:垂直分表和水平分表

  1. 垂直分表

将表中某些不常用且占了大量空间的列拆分出去

  1. 水平分表

将表中数据独立一部分到新的表中

  1. 水平分表全局唯一ID怎么保持一致?

  1. @TableField

将实体中的属性与表字段名形成对应关系

  1. @TableLogic
  • 物理删除:真实删除,将对应数据从数据库中删除,之后查询不到此条被删除的数据
  • 逻辑删除:假删除,将对应数据中代表是否被删除字段的状态修改为“被删除状态”,之后在数据库
    中仍旧能看到此条数据记录

3. 条件构造器和常用接口

4. 插件

4.1 分页插件

  1. 添加插件配置

  1. 测试

4.2 XML 自定义分页

4.3 乐观锁与悲观锁

  • 乐观锁:乐观锁在操作数据时非常乐观,认为别人不会同时修改数据。因此乐观锁不会上锁,只是在执行更新的时候判断一下在此期间别人是否修改了数据:如果别人修改了数据则放弃操作,否则执行操作。
  • 悲观锁:悲观锁在操作数据时比较悲观,认为别人会同时修改数据。因此操作数据时直接把数据锁住,直到操作完成后才会释放锁;上锁期间其他人不能修改数据

悲观锁实现方式:synchronized、MYSQL 排它锁、Lock

乐观锁实现方式:CAS机制、版本号机制

5. 通用枚举

  1. 枚举类使用注解

  1. 配置扫描通用枚举

  1. 测试

6. 多数据源

适用于多种场景:纯粹多库、 读写分离、 一主多从、 混合模式等

  1. 引入依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.5.0</version>
</dependency>
  1. 配置多数据源

  1. 应用

posted @ 2022-06-05 21:44  生活是很好玩的  阅读(590)  评论(0编辑  收藏  举报