简介
MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
愿景我们的愿景是成为 MyBatis 最好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效率翻倍
特性
-
无侵入只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
-
损耗小启动即会自动注入基本 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 操作智能分析阻断,也可自定义拦截规则,预防误操作
-
支持多种数据库支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer2005、SQLServer 等多种数据库
框架结构图
快速开始体验
一、创建一张表
二、导入依赖
<!--mysql启动依赖--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <!--mybatis-plus 是自己开发的,非官方的!--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.3.1.tmp</version> </dependency> <!--lombok--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.10</version> <scope>provided</scope> </dependency>
三、连接数据库
# 应用名称 spring.application.name=springboot-009-Mybatisplus # 应用服务 WEB 访问端口 server.port=8080 # 数据库连接四要素 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/momouseUnicode=true&characterEncoding=UTF8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC spring.datasource.username=root spring.datasource.password=123456
四、编写pojo层
package com.wenyu.springboot.pojo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; /** * There is a road to the mountain of books, and diligence is the path * * @Author: wenyu * @Date: 2022/2/25 20:22 * @Version 1.0 */ @Data @AllArgsConstructor @NoArgsConstructor public class Student { private int id; private String name; private int age; private String home; }
五、编写mapper层
package com.wenyu.springboot.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.wenyu.springboot.pojo.Student; import org.apache.ibatis.annotations.Mapper; /** * There is a road to the mountain of books, and diligence is the path * * @Author: wenyu * @Date: 2022/2/25 20:30 * @Version 1.0 */ //直接继承BaseMapper<指定类型>就完成所有CRUD操作 @Mapper public interface StudentMapper extends BaseMapper<Student> { }
六、在test进行简单的测试
package com.wenyu.springboot; import com.wenyu.springboot.mapper.StudentMapper; import com.wenyu.springboot.pojo.Student; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import java.util.List; @SpringBootTest class Springboot009MybatisplusApplicationTests { @Autowired private StudentMapper studentmapper; @Test void contextLoads() { //直接调用方法即可 List<Student> students = studentmapper.selectList(null); students.forEach(System.out::println); } }
调用Mybatis的selectList,运行Test我们就可以看到数据直接被查询出来
简单体验了一下是不是很简单?
使用Mybatis可以大大简化我们程序员的开发,日常开发的CRUD方法都有提供,可以认为这就是一个偷懒框架
视频教程参考遇见狂胜说!
【狂神说Java】MyBatisPlus最新完整教程通俗易懂_哔哩哔哩_bilibili
未完待续。。
个人笔记--也摘抄了来自个网站的资源和自己总结
希望默默赶快好起来!