MyBatis-Plus快速入門(1)

官網: 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操作和它自帶的注解

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市止邮,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖良哲,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異滑沧,居然都是意外死亡巍实,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進店門令漂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人叠必,你說我怎么就攤上這事∥吵” “怎么了?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵判没,是天一觀的道長隅茎。 經常有香客問我澄峰,道長患膛,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任胞此,我火速辦了婚禮跃捣,結果婚禮上,老公的妹妹穿的比我還像新娘疚漆。我一直安慰自己,他們只是感情好娶聘,可當我...
    茶點故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布丸升。 她就那樣靜靜地躺著铆农,像睡著了一般狡耻。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上岭皂,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天沼头,我揣著相機與錄音书劝,去河邊找鬼揉阎。 笑死庄撮,一個胖子當著我的面吹牛毙籽,可吹牛的內容都是我干的。 我是一名探鬼主播坑赡,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼毅否,長吁一口氣:“原來是場噩夢啊……” “哼亚铁!你這毒婦竟也來了螟加?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤然爆,失蹤者是張志新(化名)和其女友劉穎黍图,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體助被,經...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年搔弄,在試婚紗的時候發(fā)現自己被綠了丰滑。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡吨枉,死狀恐怖哄芜,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情认臊,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布剧腻,位于F島的核電站,受9級特大地震影響书在,放射性物質發(fā)生泄漏。R本人自食惡果不足惜儒旬,卻給世界環(huán)境...
    茶點故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一栈源、第九天 我趴在偏房一處隱蔽的房頂上張望挡爵。 院中可真熱鬧甚垦,春花似錦、人聲如沸艰亮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽调俘。三九已至伶棒,卻和暖如春彩库,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背骇钦。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留窥翩,地道東北人鳞仙。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像棍好,于是被迫代替她去往敵國和親允耿。 傳聞我的和親對象是個殘疾皇子扒怖,可洞房花燭夜當晚...
    茶點故事閱讀 45,515評論 2 359