MybatisPlus(MP)

MybatisPlus(MP)是MyBatis的增强工具,提供无侵入、损耗小的CRUD操作,支持Lambda形式调用,主键自动生成,以及强大的条件构造器。本文介绍了MP的特性、JPA的概念,以及MybatisPlus的实现原理,并给出MP的入门案例,包括导入jar包、配置User对象、继承BaseMapper接口和修改YML配置文件。
摘要由CSDN通过智能技术生成

一、简介:

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

1. MP的特性

无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
损耗小:启动即会自动注入基本 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 操作智能分析阻断,也可自定义拦截规则,预防误操作
————————————————
版权声明:本文为CSDN博主「闪耀太阳」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_16804847/article/details/107120164
2. 历史背景
问题1: 现在操作的数据库任然采用 sql语句的方式进行编辑. 操作sql的方式实质就是面对过程的操作方式.
需求: 由于传统的sql 开发效率低,并且无论多么简单的sql都需要程序员自己编辑.很繁琐(无趣).
想法: 能否以面向对象的方式操作数据库!!!

2. JPA说明

JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中
Sun引入新的JPA ORM规范出于两个原因:其一,简化现有Java EE和Java SE应用开发工作;其二,Sun希望整合ORM技术,实现天下归一。

核心理念: 以面向对象的方式操作数据库.

3. MybatisPlus实现原理

核心:
1). 表与对象建立关联关系
对象名称 ---------> 表名
对象的属性 -------> 数据表中的字段.
2.) 采用第三方接口 规范所有的单表操作规则.(封装思想)
3.)将CURD接口方法,必须按照sql的规范转化为指定的sql语句.

理论依据:
userMapper.insert(user); //程序员只写到这里.
sql: insert into 表名(字段名…) values (属性值…);
按照用户的调用发方法,动态拼接sql.之后交给Mybatis去执行.
拼接sql:
insert into user表(字段A,字段B,字段C…) values (属性值A,属性B,属性C

二、 MP入门案例

2.1 导入jar包


  • 4.0.0 com.jt
    springBootDemo2
    0.0.1-SNAPSHOT

    	<!--parent标签作用:管理所有被springBoot整合之后的jar包的版本定义 springBoot特点: 开箱即用
    引入jar包就可以添加相对应的功能.  		定义了当前springBoot2.3.1所有的相关依赖的版本号信息. -->
    	<parent> 		<groupId>org.springframework.boot</groupId>
    		<artifactId>spring-boot-starter-parent</artifactId>
    		<version>2.3.1.RELEASE</version> 		<relativePath /> <!-- lookup
    parent from repository --> 	</parent>
    
    	<properties> 		<java.version>1.8</java.version> 		<!--指定插件版本 -->
    		<maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
    		<!--跳过测试类打包 --> 		<skipTests>true</skipTests> 	</properties>
    
    	<dependencies> 		<!--在webjar包的内部关联整合了所有的springMVC的jar包信息.
    所以只需要引入一个jar包,则可以关联整合所有的有关mvc的依赖包信息 --> 		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-web</artifactId>
    		</dependency>
    
    		<dependency> 			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-test</artifactId>
    			<scope>test</scope> 			<exclusions>
    				<exclusion>
    					<groupId>org.junit.vintage</groupId>
    					<artifactId>junit-vintage-engine</artifactId>
    				</exclusion> 			</exclusions> 		</dependency>
    
    		<!--添加属性注入依赖 --> 		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-configuration-processor</artifactId>
    			<optional>true</optional> 		</dependency>
    
    		<!--支持热部署 --> 		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-devtools</artifactId> 		</dependency>
    
    		<!--引入插件lombok 自动的set/get/构造方法插件 --> 		<dependency>
    			<groupId>org.projectlombok</groupId>
    			<artifactId>lombok</artifactId> 		</dependency>
    
    		<!--引入数据库驱动 --> 		<dependency> 			<groupId>mysql</groupId>
    			<artifactId>mysql-connector-java</artifactId>
    			<scope>runtime</scope> 		</dependency>
    
    		<!--springBoot数据库连接 --> 		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-jdbc</artifactId>
    		</dependency>
    
    		<!--spring整合mybatis-plus --> 		<dependency>
    			<groupId>com.baomidou</groupId>
    			<artifactId>mybatis-plus-boot-starter</artifactId>
    			<version>3.2.0</version> 		</dependency> 	</dependencies>
    
    	<!--负责项目打包 更新 maven操作相关的配置 必须添加 --> 	<build> 		<plugins>
    			<plugin>
    				<groupId>org.springframework.boot</groupId>
    				<artifactId>spring-boot-maven-plugin</artifactId> 			</plugin> 		</plugins> 	</build>
    
    </project>
    

2.2 配置User对象

package com.jt.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import lombok.Data;
import lombok.experimental.Accessors;

@Data
@Accessors(chain = true)
@TableName //与表进行关联 如果名称一致,则可以省略不写.
public class User {
//属性一般都与表字段对应
@TableId(type = IdType.AUTO) //主键自增标识.
private Integer id;
//@TableField(value = “name”) //如果属性名称与字段名称一致(包含驼峰规则) 可以省略不写
private String name;
private Integer age;
private String sex;
}

2.3 继承BaseMapper接口

在这里插入图片描述

2.4 修改YML配置文件

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值