Mybatis-Plus環(huán)境配置與入門案例分析
1 初識Mybatis-Plus
??MyBatis-Plus簡稱 MP,是一個 MyBatis的增強工具,在MyBatis的基礎(chǔ)上只做增強不做改變,為簡化開發(fā)、提高效率而生。MyBatis-Plus有很多的特點支持很多的標(biāo)準(zhǔn)數(shù)據(jù)庫,具體等學(xué)到相關(guān)特性的時候再去詳細(xì)了解。MyBatis-Plus的官方文檔:https://baomidou.com/
關(guān)于MyBatis-Plus的框架結(jié)構(gòu),也就是框架的底層實現(xiàn)官方文檔給出如下試圖,簡單總結(jié)來就是:掃描實體類,通過反射抽取實體類中的屬性并分析其與表中字段之間的關(guān)系,最后調(diào)用MyBatis-Plus提供的一堆方法生成SQL語句注入到MyBatis的容器中,從而實現(xiàn)不同的增刪改查功能

2 入門案例
前期環(huán)境準(zhǔn)備
第一步: 創(chuàng)建數(shù)據(jù)庫表并插入數(shù)據(jù)
CREATE TABLE `user` ( `id` bigint(20) NOT NULL COMMENT '主鍵ID', `name` varchar(30) DEFAULT NULL COMMENT '姓名', `age` int(11) DEFAULT NULL COMMENT '年齡', `email` varchar(50) DEFAULT NULL COMMENT '郵箱', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 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 Initializr快速創(chuàng)建一個SpringBoot工程

刪除選中的不必要文件以及文件夾

第三步: pom文件導(dǎo)入相關(guān)依賴
<!--mybatis-的場景啟動器-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
<!--lombok簡化實體類開發(fā),如果之前沒有下載過依賴的同名插件的話需要下載安裝,然后重啟一下idea-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!--數(shù)據(jù)庫連接驅(qū)動-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.32</version>
<scope>runtime</scope>
</dependency>
<!--整合druid的數(shù)據(jù)源-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.17</version>
</dependency>
第四步: 配置文件改后綴為.yml并配置數(shù)據(jù)源
spring:
# 數(shù)據(jù)源的各種配置
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/mybatis_plus
username: root
password: 123456
# Mybatis-Plus開啟日志打印
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
各層代碼編寫
domain層實體類
/**
* @author : mereign
* @date : 2022/3/13 - 14:28
* @desc : user實體類
*/
// 在編譯期間生成user類的全參構(gòu)造方法
@AllArgsConstructor
// 在編譯期間生成user類的無參構(gòu)造方法
@NoArgsConstructor
// 在編譯期間生成封裝屬性的setter、getter方法,并重寫了toString和equals、hashCode方法
@Data
public class User {
private Long id;
private String name;
private Integer age;
private String email;
}
mapper層繼承接口
/**
* @author : mereign
* @date : 2022/3/13 - 15:43
* @desc : 創(chuàng)建mapper接口繼承BaseMapper接口并傳user泛型
*/
// spring框架創(chuàng)建mapper接口相對應(yīng)的接口實現(xiàn)類
@Mapper
public interface UserMapper extends BaseMapper<User> {
}
測試類
/**
* @author : mereign
* @date : 2022/3/13 - 15:50
* @desc : 測試類簡單測試mp的查詢方法
*/
@SpringBootTest
public class MybatisPlusTest {
@Autowired
UserMapper mapper;
@Test
public void selectListTest() {
// 通過條件構(gòu)造器查詢到一個list集合,如果沒有條件的話參數(shù)設(shè)置為null
List<User> users = mapper.selectList(null);
users.forEach(System.out::println);
}
}
入門案例查詢結(jié)果

入門案例中的小知識點
??測試類中注入mapper組件的時候代碼會報紅,但是并不會影響最終的程序執(zhí)行結(jié)果。原因是:@Mapper接口將該接口動態(tài)生成的代理類注入到IOC容器中起相應(yīng)的作用,所以使用自動注入mapper的時候會報紅在容器中找不到這個接口組件。解決方法:在mapper接口上加@Repository注解將類或接口標(biāo)注為一個持久層組件。這樣的話一個注解用來起作用,一個注解用來注入的時候找到接口組件防止報紅 ??
生成的SQL語句中,表名為mapper接口傳入的泛型首字母小寫,表中字段名為泛型類的封裝屬性,如果需要修改實體類綁定的表名的話需要在實體類上使用@TableName注解
到此這篇關(guān)于Mybatis-Plus環(huán)境配置與入門案例分析的文章就介紹到這了,更多相關(guān)Mybatis-Plus 入門內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java?SpringBootWeb請求響應(yīng)舉例詳解
SpringBoot是一種整合Spring技術(shù)棧的方式(或者說是框架),同時也是簡化Spring的一種快速開發(fā)的腳手架,這篇文章主要給大家介紹了關(guān)于java?SpringBootWeb請求響應(yīng)的相關(guān)資料,需要的朋友可以參考下2024-05-05
解決RedisTemplate的key默認(rèn)序列化器的問題
這篇文章主要介紹了解決RedisTemplate的key默認(rèn)序列化器的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03
java通過ssh連接服務(wù)器執(zhí)行shell命令詳解及實例
這篇文章主要介紹了java通過ssh連接服務(wù)器執(zhí)行shell命令詳解及實例方法的相關(guān)資料2017-02-02
Spring依賴注入中的@Resource與@Autowired詳解
這篇文章主要介紹了Spring依賴注入中的@Resource與@Autowired詳解,提到Spring依賴注入,大家最先想到應(yīng)該是@Resource和@Autowired,對于Spring為什么要支持兩個這么類似的注解卻未提到,屬于知其然而不知其所以然,本文就來做詳細(xì)講解,需要的朋友可以參考下2023-09-09
SpringMVC使用@Valid注解實現(xiàn)數(shù)據(jù)驗證的代碼示例
在 Web 開發(fā)中,數(shù)據(jù)驗證是一個非常重要的環(huán)節(jié),它可以確保數(shù)據(jù)的合法性和正確性,保護(hù)系統(tǒng)不受到惡意攻擊或用戶誤操作的影響,在 SpringMVC 中,我們可以使用 @Valid 注解來實現(xiàn)數(shù)據(jù)驗證,所以本文就給大家介紹具體的使用方法,需要的朋友可以參考下2023-07-07

