MyBatisPlus的簡介及案例詳解
一、MyBatisPlus簡介
MyBatisPlus(簡稱MP)是基于MyBatis框架基礎上開發(fā)的增強型工具,旨在簡化開發(fā)、提高效率
MyBatisPlus的官網為:https://baomidou.com/

從這張圖可以看出MP旨在成為MyBatis的最好搭檔,而不是替換MyBatis,所以可以理解為MP是MyBatis的一套增強工具,它是在MyBatis的基礎上進行開發(fā)的,我們雖然使用MP但是底層仍然是MyBatis的東西,也就是說我們也可以在MP中寫Mybatis的內容。
對于MP的學習,大家可以參考官方文檔進行學習,里面有詳細的代碼案例。
MP的特性:
● 無侵入:只做增強不做改變,不會對現有工程產生影響
● 強大的CRUD操作:內置通用Mapper,少量配置即可實現單表CRUD操作
● 支持Lambda:編寫查詢條件無需擔心字段寫錯
● 支持主鍵自動生成
● 內置分頁插件
......
二、MyBatisPlus入門案例
開發(fā)方式:
- 基于MyBatis使用MyBatisPlus
- 基于Spring使用MyBatisPlus
- 基于SpringBoot使用MyBatisPlus
回顧基于SpringBoot整合Mybatsi開發(fā)過程:
- 創(chuàng)建SpringBoot工程,配置相關屬性及勾選能夠實現自動添加起步依賴包
- 設置dataSource相關屬性(JDBC參數)
- 定義數據層接口映射配置
基于以上實現步驟,對SpringBoot整合MyBatisPlus來快速實現下
1、創(chuàng)建數據庫及表
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,'hello','itcast',15,'4006184000');
2、創(chuàng)建SpringBoot工程

3、勾選配置使用技術
說明:由于MP并未被收錄到idea的系統(tǒng)內置配置,無法直接選擇加入,需要手動在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數據源可以加也可以不加,SpringBoot有內置的數據源,可以配置成使用Druid數據源
● 從MP的依賴關系可以看出,通過依賴傳遞已經將MyBatis與MyBatis整合Spring的jar包導入,我們不需要額外在添加MyBatis的相關jar包
5、添加MP的相關配置信息
resources默認生成properties配置文件,可以將其替代成yml文件,并在文件中配置數據庫連接相關信息: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
6、根據數據庫表創(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就可以不寫
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容器初始化后,由框架DAO接口的代理對象來注入
現在服務器并未啟動,所以代理對象也未創(chuàng)建,IDEA查找不到對應的對象注入,所以提示報紅
一旦服務器啟動,就能注入其代理對象,所以該錯誤提示不影響正常運行
跟之前整合MyBatis相比,我們不需要再Dao接口中編寫方法和SQL語句,只需要繼承BaseMapper接口即可,整體來說簡化很多。
到此這篇關于MyBatisPlus的簡介及案例詳解的文章就介紹到這了,更多相關MyBatisPlus案例內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Spring中DAO被循環(huán)調用的時候數據不實時更新的解決方法
這篇文章主要介紹了Spring中DAO被循環(huán)調用的時候數據不實時更新的解決方法,需要的朋友可以參考下2014-08-08
從零開始搭建springboot+springcloud+mybatis本地項目全過程(圖解)
這篇文章主要介紹了從零開始搭建springboot+springcloud+mybatis本地項目全過程(圖解),本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01
idea創(chuàng)建SpringBoot項目及注解配置相關應用小結
Spring Boot是Spring社區(qū)發(fā)布的一個開源項目,旨在幫助開發(fā)者快速并且更簡單的構建項目,Spring Boot框架,其功能非常簡單,便是幫助我們實現自動配置,本文給大家介紹idea創(chuàng)建SpringBoot項目及注解配置相關應用,感興趣的朋友跟隨小編一起看看吧2023-11-11
SSH框架網上商城項目第15戰(zhàn)之線程、定時器同步首頁數據
這篇文章主要為大家詳細介紹了SSH框架網上商城項目第15戰(zhàn)之線程、定時器同步首頁數據,感興趣的小伙伴們可以參考一下2016-06-06

