官網: https://baomidou.com/guide
簡介
是一個 MyBatis 的增強工具,在 MyBatis 的基礎上只做增強不做改變盈简,為簡化開發(fā)、提高效率而生香浩。
特性
- 無侵入: 只做增強不做改變,引入它不會對現有工程產生影響邻吭,如絲般順滑
- 損耗醒绨浴: 啟動即會自動注入基本 CURD囱晴,性能基本無損耗膏蚓,直接面向對象操作
- 強大的 CRUD 操作: 內置通用 Mapper、通用 Service畸写,僅僅通過少量配置即可實現單表大部分 CRUD 操作,更有強大的條件構造器论笔,滿足各類使用需求
-
支持 Lambda 形式調用: 通過 Lambda 表達式千所,方便的編寫各類查詢條件狂魔,無需再擔心字段寫錯
支持主鍵自動生成:支持多達 4 種主鍵策略(內含分布式唯一 ID 生成器 - Sequence)淫痰,可自由配置,完美解決主鍵問題 - 支持 ActiveRecord 模式: 支持 ActiveRecord 形式調用管嬉,實體類只需繼承 Model 類即可進行強大的 CRUD 操作
- 支持自定義全局通用操作: 支持全局通用方法注入( Write once, use anywhere )
- 內置代碼生成器: 采用代碼或者 Maven 插件可快速生成 Mapper 朗鸠、 Model 础倍、 Service 、 Controller 層代碼沟启,支持模板引擎,更有超多自定義配置等您來使用
- 內置分頁插件: 基于 MyBatis 物理分頁德迹,開發(fā)者無需關心具體操作,配置好插件之后卸例,寫分頁等同于普通 List 查詢
- 分頁插件支持多種數據庫: 支持 MySQL肌毅、MariaDB、Oracle悬而、DB2、H2袭蝗、HSQL唤殴、SQLite到腥、Postgre、SQLServer 等多種數據庫
- 內置性能分析插件: 可輸出 Sql 語句以及其執(zhí)行時間廉侧,建議開發(fā)測試時啟用該功能篓足,能快速揪出慢查詢
- 內置全局攔截插件: 提供全表 delete 、 update 操作智能分析阻斷栈拖,也可自定義攔截規(guī)則,預防誤操作
支持數據庫
mysql 索赏、mariadb 、oracle 潜腻、db2 器仗、h2 、hsql 精钮、sqlite 、postgresql 轨香、sqlserver 、presto 科雳、Gauss 策橘、Firebird
Phoenix 、clickhouse 丽已、Sybase ASE 、 OceanBase 吼畏、達夢數據庫 督赤、虛谷數據庫 泻蚊、人大金倉數據庫 、南大通用數據庫
快速入門
創(chuàng)建一個空的SpringBoot工程(工程默認使用mysql數據庫進行學習)
使用 <a >Spring Initializer</a> 快速初始化一個 Spring Boot 工程
本地目錄結構:
目錄結構
數據準備
新建用戶表
DROP TABLE IF EXISTS user;
CREATE TABLE user
(
id BIGINT(20) NOT NULL COMMENT '主鍵ID',
name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
age INT(11) NULL DEFAULT NULL COMMENT '年齡',
email VARCHAR(50) NULL DEFAULT NULL COMMENT '郵箱',
PRIMARY KEY (id)
);
插入數據
DELETE FROM user;
INSERT INTO user (id, name, age, email) VALUES
(1, 'Jone', 18, 'test1@baomidou.com'),
(2, 'Jack', 20, 'test2@baomidou.com'),
(3, 'Tom', 28, 'test3@baomidou.com'),
(4, 'Sandy', 21, 'test4@baomidou.com'),
(5, 'Billie', 24, 'test5@baomidou.com');
依賴
引入 spring-boot-starter、spring-boot-starter-test秒旋、mybatis-plus-boot-starter、lombok迁筛、mysql
依賴:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.18</version>
</dependency>
配置
在 application.yml 配置文件中添加 mysql 數據庫的相關配置:
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver \\ 這里是mysql8的驅動
username: root
password: root
url: 'jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai'
配置包掃描:先新建config包细卧,在包下面新建DatasourceConfig
@Configuration //配置加載注解
@MapperScan("com.test.demo.mapper") //配置掃描那個包
public class DatasourceConfig {
//往下會加載mybaits-plus的插件進來
}
編碼
編寫實體類user.java
@Data
public class User {
private Long id;
private String name;
private Integer age;
private String email;
}
編寫Mapper類UserMapper.java
public interface UserMapper extends BaseMapper<User> {
}
開始使用
單元測試
import com.test.demo.entity.User;
import com.test.demo.mapper.UserMapper;
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 UserTest {
@Autowired
private UserMapper userMapper;
@Test
void getList() {
List<User> userList = userMapper.selectList(null); //沒有過濾條件則未null
userList.forEach(System.out::println);
}
}
控制臺輸出:
User(id=1, name=Jone, age=18, email=test1@baomidou.com)
User(id=2, name=Jack, age=20, email=test2@baomidou.com)
User(id=3, name=Tom, age=28, email=test3@baomidou.com)
User(id=4, name=Sandy, age=21, email=test4@baomidou.com)
User(id=5, name=Billie, age=24, email=test5@baomidou.com)
好了這里就是mybatis-plus快速入門了贪庙,下一篇我會深入記錄mybatis-plus的crud操作和它自帶的注解