MyBatisPlus的簡介及案例詳解
一、MyBatisPlus簡介
MyBatisPlus(簡稱MP)是基于MyBatis框架基礎(chǔ)上開發(fā)的增強型工具,旨在簡化開發(fā)、提高效率
MyBatisPlus的官網(wǎng)為:https://baomidou.com/
從這張圖可以看出MP旨在成為MyBatis的最好搭檔,而不是替換MyBatis,所以可以理解為MP是MyBatis的一套增強工具,它是在MyBatis的基礎(chǔ)上進行開發(fā)的,我們雖然使用MP但是底層仍然是MyBatis的東西,也就是說我們也可以在MP中寫Mybatis的內(nèi)容。
對于MP的學(xué)習(xí),大家可以參考官方文檔進行學(xué)習(xí),里面有詳細的代碼案例。
MP的特性:
● 無侵入:只做增強不做改變,不會對現(xiàn)有工程產(chǎn)生影響
● 強大的CRUD操作:內(nèi)置通用Mapper,少量配置即可實現(xiàn)單表CRUD操作
● 支持Lambda:編寫查詢條件無需擔(dān)心字段寫錯
● 支持主鍵自動生成
● 內(nèi)置分頁插件
......
二、MyBatisPlus入門案例
開發(fā)方式:
- 基于MyBatis使用MyBatisPlus
- 基于Spring使用MyBatisPlus
- 基于SpringBoot使用MyBatisPlus
回顧基于SpringBoot整合Mybatsi開發(fā)過程:
- 創(chuàng)建SpringBoot工程,配置相關(guān)屬性及勾選能夠?qū)崿F(xiàn)自動添加起步依賴包
- 設(shè)置dataSource相關(guān)屬性(JDBC參數(shù))
- 定義數(shù)據(jù)層接口映射配置
基于以上實現(xiàn)步驟,對SpringBoot整合MyBatisPlus來快速實現(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,'hello','itcast',15,'4006184000');
2、創(chuàng)建SpringBoot工程
3、勾選配置使用技術(shù)
說明:由于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的依賴關(guān)系可以看出,通過依賴傳遞已經(jīng)將MyBatis與MyBatis整合Spring的jar包導(dǎo)入,我們不需要額外在添加MyBatis的相關(guān)jar包
5、添加MP的相關(guān)配置信息
resources默認生成properties配置文件,可以將其替代成yml文件,并在文件中配置數(shù)據(jù)庫連接相關(guān)信息: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、根據(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、編寫引導(dǎo)類
@SpringBootApplication //@MapperScan("com.itheima.dao") public class Mybatisplus01QuickstartApplication { public static void main(String[] args) { SpringApplication.run(Mybatisplus01QuickstartApplication.class, args); } }
說明:Dao接口要想被容器掃描到,有兩種解決方案:
方案一:在Dao接口上添加@Mapper注解,并確保Dao處在引導(dǎo)類所在包或其子包中
該方案的缺點是需要在每一Dao接口中添加注解
方案二:在引導(dǎo)類上添加@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是一個接口,不能實例化對象
只有在服務(wù)器啟動IOC容器初始化后,由框架DAO接口的代理對象來注入
現(xiàn)在服務(wù)器并未啟動,所以代理對象也未創(chuàng)建,IDEA查找不到對應(yīng)的對象注入,所以提示報紅
一旦服務(wù)器啟動,就能注入其代理對象,所以該錯誤提示不影響正常運行
跟之前整合MyBatis相比,我們不需要再Dao接口中編寫方法和SQL語句,只需要繼承BaseMapper接口即可,整體來說簡化很多。
到此這篇關(guān)于MyBatisPlus的簡介及案例詳解的文章就介紹到這了,更多相關(guān)MyBatisPlus案例內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java 中橋接模式——對象結(jié)構(gòu)型模式的實例詳解
這篇文章主要介紹了Java 中橋接模式——對象結(jié)構(gòu)型模式的實例詳解的相關(guān)資料,希望通過本文大家能掌握這部分知識,需要的朋友可以參考下2017-09-09Spring中DAO被循環(huán)調(diào)用的時候數(shù)據(jù)不實時更新的解決方法
這篇文章主要介紹了Spring中DAO被循環(huán)調(diào)用的時候數(shù)據(jù)不實時更新的解決方法,需要的朋友可以參考下2014-08-08從零開始搭建springboot+springcloud+mybatis本地項目全過程(圖解)
這篇文章主要介紹了從零開始搭建springboot+springcloud+mybatis本地項目全過程(圖解),本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01idea創(chuàng)建SpringBoot項目及注解配置相關(guān)應(yīng)用小結(jié)
Spring Boot是Spring社區(qū)發(fā)布的一個開源項目,旨在幫助開發(fā)者快速并且更簡單的構(gòu)建項目,Spring Boot框架,其功能非常簡單,便是幫助我們實現(xiàn)自動配置,本文給大家介紹idea創(chuàng)建SpringBoot項目及注解配置相關(guān)應(yīng)用,感興趣的朋友跟隨小編一起看看吧2023-11-11Spring boot詳解緩存redis實現(xiàn)定時過期方法
本篇文章分享的就是spring boot中的一個輪子,spring cache注解的方式實現(xiàn)接口數(shù)據(jù)緩存。默認的配置想非常簡單,但是有一個弊端是緩存數(shù)據(jù)為永久緩存,本次將介紹如何設(shè)置接口緩存數(shù)據(jù)的過期時間2022-07-07SSH框架網(wǎng)上商城項目第15戰(zhàn)之線程、定時器同步首頁數(shù)據(jù)
這篇文章主要為大家詳細介紹了SSH框架網(wǎng)上商城項目第15戰(zhàn)之線程、定時器同步首頁數(shù)據(jù),感興趣的小伙伴們可以參考一下2016-06-06Presto支持Elasticsearch數(shù)據(jù)源配置詳解
這篇文章主要為大家介紹了Presto支持Elasticsearch數(shù)據(jù)源配置詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-12-12