1,MyBatisPlus入門案例與簡介
這一節(jié)我們來學習下MyBatisPlus的入門案例與簡介,這個和其他課程都不太一樣,其他的課程都是先介紹概念,然后再寫入門案例。而對于MyBatisPlus的學習,我們將順序做了調(diào)整,主要的原因MyBatisPlus主要是對MyBatis的簡化,所有我們先體會下它簡化在哪,然后再學習它是什么,以及它幫我們都做哪些事。
1.1 入門案例
-
MybatisPlus(簡稱MP)是基于MyBatis框架基礎上開發(fā)的增強型工具,旨在簡化開發(fā)、提供效率。
-
開發(fā)方式
- 基于MyBatis使用MyBatisPlus
- 基于Spring使用MyBatisPlus
- 基于SpringBoot使用MyBatisPlus
SpringBoot剛剛我們學習完成,它能快速構(gòu)建Spring開發(fā)環(huán)境用以整合其他技術,使用起來是非常簡單,對于MP的學習,我們也基于SpringBoot來構(gòu)建學習。
學習之前,我們先來回顧下,SpringBoot整合Mybatis的開發(fā)過程:
-
創(chuàng)建SpringBoot工程
-
勾選配置使用的技術,能夠?qū)崿F(xiàn)自動添加起步依賴包
-
設置dataSource相關屬性(JDBC參數(shù))
-
定義數(shù)據(jù)層接口映射配置
我們可以參考著上面的這個實現(xiàn)步驟把SpringBoot整合MyBatisPlus來快速實現(xiàn)下,具體的實現(xiàn)步驟為:
步驟1:創(chuàng)建數(shù)據(jù)庫及表
create database if not exists mybatisplus_db character set utf8;
use mybatisplus_db;
CREATE TABLE user (
id bigint(20) primary key auto_increment,
name varchar(32) not null,
password varchar(32) not null,
age int(3) not null ,
tel varchar(32) not null
);
insert into user values(1,'Tom','tom',3,'18866668888');
insert into user values(2,'Jerry','jerry',4,'16688886666');
insert into user values(3,'Jock','123456',41,'18812345678');
insert into user values(4,'傳智播客','itcast',15,'4006184000');
步驟2:創(chuàng)建SpringBoot工程
步驟3:勾選配置使用技術
說明:
- 由于MP并未被收錄到idea的系統(tǒng)內(nèi)置配置,無法直接選擇加入,需要手動在pom.xml中配置添加
步驟4:pom.xml補全依賴
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.16</version>
</dependency>
說明:
-
druid數(shù)據(jù)源可以加也可以不加,SpringBoot有內(nèi)置的數(shù)據(jù)源,可以配置成使用Druid數(shù)據(jù)源
-
從MP的依賴關系可以看出,通過依賴傳遞已經(jīng)將MyBatis與MyBatis整合Spring的jar包導入,我們不需要額外在添加MyBatis的相關jar包
步驟5:添加MP的相關配置信息
resources默認生成的是properties配置文件,可以將其替換成yml文件,并在文件中配置數(shù)據(jù)庫連接的相關信息:application.yml
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/mybatisplus_db?serverTimezone=UTC
username: root
password: root
說明:serverTimezone是用來設置時區(qū),UTC是標準時區(qū),和咱們的時間差8小時,所以可以將其修改為Asia/Shanghai
步驟6:根據(jù)數(shù)據(jù)庫表創(chuàng)建實體類
public class User {
private Long id;
private String name;
private String password;
private Integer age;
private String tel;
//setter...getter...toString方法略
}
步驟7:創(chuàng)建Dao接口
@Mapper
public interface UserDao extends BaseMapper<User>{
}
步驟8:編寫引導類
@SpringBootApplication
//@MapperScan("com.itheima.dao")
public class Mybatisplus01QuickstartApplication {
public static void main(String[] args) {
SpringApplication.run(Mybatisplus01QuickstartApplication.class, args);
}
}
說明: Dao接口要想被容器掃描到,有兩種解決方案:
- 方案一:在Dao接口上添加
@Mapper
注解,并且確保Dao處在引導類所在包或其子包中- 該方案的缺點是需要在每一Dao接口中添加注解
- 方案二:在引導類上添加
@MapperScan
注解,其屬性為所要掃描的Dao所在包- 該方案的好處是只需要寫一次,則指定包下的所有Dao接口都能被掃描到,
@Mapper
就可以不寫。
- 該方案的好處是只需要寫一次,則指定包下的所有Dao接口都能被掃描到,
步驟9:編寫測試類
@SpringBootTest
class MpDemoApplicationTests {
@Autowired
private UserDao userDao;
@Test
public void testGetAll() {
List<User> userList = userDao.selectList(null);
System.out.println(userList);
}
}
說明:
userDao注入的時候下面有紅線提示的原因是什么?
-
UserDao是一個接口,不能實例化對象
-
只有在服務器啟動IOC容器初始化后,由框架創(chuàng)建DAO接口的代理對象來注入
-
現(xiàn)在服務器并未啟動,所以代理對象也未創(chuàng)建,IDEA查找不到對應的對象注入,所以提示報紅
-
一旦服務啟動,就能注入其代理對象,所以該錯誤提示不影響正常運行。
查看運行結(jié)果:
跟之前整合MyBatis相比,你會發(fā)現(xiàn)我們不需要在DAO接口中編寫方法和SQL語句了,只需要繼承BaseMapper
接口即可。整體來說簡化很多。
1.2 MybatisPlus簡介
MyBatisPlus(簡稱MP)是基于MyBatis框架基礎上開發(fā)的增強型工具,旨在簡化開發(fā)、提高效率
通過剛才的案例,相信大家能夠體會簡化開發(fā)和提高效率這兩個方面的優(yōu)點。
MyBatisPlus的官網(wǎng)為:https://mp.baomidou.com/
說明:
現(xiàn)在的頁面中,這一行已經(jīng)被刪除,現(xiàn)在再去訪問https://mybatis.plus
會發(fā)現(xiàn)訪問不到,這個就有很多可能性供我們猜想了,所以大家使用baomidou的網(wǎng)址進行訪問即可。
官方文檔中有一張很多小伙伴比較熟悉的圖片:
從這張圖中我們可以看出MP旨在成為MyBatis的最好搭檔,而不是替換MyBatis,所以可以理解為MP是MyBatis的一套增強工具,它是在MyBatis的基礎上進行開發(fā)的,我們雖然使用MP但是底層依然是MyBatis的東西,也就是說我們也可以在MP中寫MyBatis的內(nèi)容。
對于MP的學習,大家可以參考著官方文檔來進行學習,里面都有詳細的代碼案例。
MP的特性:
- 無侵入:只做增強不做改變,不會對現(xiàn)有工程產(chǎn)生影響
- 強大的 CRUD 操作:內(nèi)置通用 Mapper,少量配置即可實現(xiàn)單表CRUD 操作
- 支持 Lambda:編寫查詢條件無需擔心字段寫錯
- 支持主鍵自動生成
- 內(nèi)置分頁插件
- ……
學習筆記 from 黑馬程序員文章來源:http://www.zghlxwxcb.cn/news/detail-411033.html
By – Suki 2023/4/6文章來源地址http://www.zghlxwxcb.cn/news/detail-411033.html
到了這里,關于MyBatisPlus入門案例與簡介的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!