Mybatis-Plus笔记

一.概述

Mybatis-Plus(简称MP)是一个Mybatis的增强工具,只是在Mybatis的基础上做了增强却不做改变,MyBatis-Plus支持所有Mybatis原生的特性,所以引入Mybatis-Plus不会对现有的Mybatis构架产生任何影响。MyBatis 增强工具包,简化 CRUD 操作。启动加载 XML 配置时注入单表 SQL 操作 ,为简化开发工作、提高生产率而生。

二.MyBatis和MyBatis-Plus的区别

MyBatis 需要定义 mapper.xml 文件并根据传入的参数使用相应的 SQL查询语句,需要实现 Mybatis 提供的各种方法;而 MyBatis-Plus 具有许多针对 CRUD 进行的简化方法,通过继承 BaseMapper 以及使用 Lambda 表达式,可以让我们像 SpringDataJPA 类似地使用接口编程方式进行数据库操作。

 摘自:MyBatis与MyBatis-Plus的区别?_极客李华的博客-CSDN博客

三.配置

1. 创建一个空的 Spring Boot 工程

2. 添加依赖(引入 Spring Boot Starter 父工程,引入 spring-boot-starter、spring-boot-starter-test、mybatis-plus-boot-starter、h2 依赖)

3. 在 application.yml (yudao-server/src/main/resources/application-local.yaml)配置文件中添加数据库的相关配置

四.特性

  • 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
  • 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作
  • 强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求
  • 支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错
  • 支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题
  • 支持 ActiveRecord 模式:支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD 操作
  • 支持自定义全局通用操作:支持全局通用方法注入( Write once, use anywhere )
  • 内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码,支持模板引擎,更有超多自定义配置等您来使用
  • 内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通 List 查询
  • 分页插件支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多种数据库
  • 内置性能分析插件:可输出 SQL 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询
  • 内置全局拦截插件:提供全表 delete 、 update 操作智能分析阻断,也可自定义拦截规则,预防误操作

摘自:简介 | MyBatis-Plus

五.Java注解

1. 定义:注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。

#元数据定义:描述数据的数据,对数据及信息资源的描述性信息。

2. 作用分类:

  • 编写文档:通过代码里标识的元数据生成文档【生成文档doc文档】
  • 代码分析:通过代码里标识的元数据对代码进行分析【使用反射】
  • 编译检查:通过代码里标识的元数据让编译器能够实现基本的编译检查【Override】

3. Java自带的标准注解:包括@Override、@Deprecated和@SuppressWarnings,分别用于标明重写某个方法、标明某个类或方法过时、标明要忽略的警告,用这些注解标明后编译器就会进行检查。

六. MyBatis-Plus注解在项目中的运用

这一部分用到:数据库 MyBatis | ruoyi-vue-pro 开发指南注解 | MyBatis-Plus项目:GitHub - YunaiV/ruoyi-vue-pro: 🔥 官方推荐 🔥 RuoYi-Vue 全新 Pro 版本,优化重构所有功能。

1. 实体类

     BaseDo 是所有数据库实体的父类(yudao-framework的mybatis中),主要用到 BaseDO以及继承 BaseDo 带逻辑删除的扩展实体对象 ExtendDeletableDO。其中每个模块的具体实体类,在对应的 dal.dataobject 包下,以 DO 结尾;数据库访问类放在 dal.mysql 包下,以 Mapper 结尾。

1.1 @TableField  描述:字段注解(非主键)

1.2 @TableName 描述:表名注解,标识实体类对应的表

1.3 @TableId 描述:主键注解

1.4 @KeySequence 描述:序列主键策略

其中还有一些Lombok的注释:@Data、@Builder、@NoArgsConstructor、@AllArgsConstructor

参考:Lombok工具 : 常用注解介绍 (全)_lombok注解_white camel的博客-CSDN博客

@Data 等于同时加了@Getter/@Setter(生成getter和setter方法)、@ToString(自动重写toString()方法、@EqualsAndHashCode(生成equals(Object other) 和 hashcode()方法)、@RequiredArgsConstructor (生成一个包含 "特定参数" 的构造器)

@Builder 生成流式 set 值写法

@NoArgsConstructor和@AllArgsConstructor分别是无参构造器和包含所有参数的构造器

#复习Serializable序列化接口

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值