欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mybatis-Plus環(huán)境配置與入門案例分析

 更新時(shí)間:2022年03月21日 14:35:31   作者:扎哇太棗糕  
MyBatis-Plus 是一個(gè) Mybatis 增強(qiáng)版工具,在 MyBatis 上擴(kuò)充了其他功能沒有改變其基本功能,為了簡(jiǎn)化開發(fā)提交效率而存在,本篇文章帶你配置環(huán)境并認(rèn)識(shí)它

1 初識(shí)Mybatis-Plus

??MyBatis-Plus簡(jiǎn)稱 MP,是一個(gè) MyBatis的增強(qiáng)工具,在MyBatis的基礎(chǔ)上只做增強(qiáng)不做改變,為簡(jiǎn)化開發(fā)、提高效率而生。MyBatis-Plus有很多的特點(diǎn)支持很多的標(biāo)準(zhǔn)數(shù)據(jù)庫,具體等學(xué)到相關(guān)特性的時(shí)候再去詳細(xì)了解。MyBatis-Plus的官方文檔:https://baomidou.com/

關(guān)于MyBatis-Plus的框架結(jié)構(gòu),也就是框架的底層實(shí)現(xiàn)官方文檔給出如下試圖,簡(jiǎn)單總結(jié)來就是:掃描實(shí)體類,通過反射抽取實(shí)體類中的屬性并分析其與表中字段之間的關(guān)系,最后調(diào)用MyBatis-Plus提供的一堆方法生成SQL語句注入到MyBatis的容器中,從而實(shí)現(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)建一個(gè)SpringBoot工程

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

第三步: pom文件導(dǎo)入相關(guān)依賴

<!--mybatis-的場(chǎng)景啟動(dòng)器-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.1</version>
</dependency>

<!--lombok簡(jiǎn)化實(shí)體類開發(fā),如果之前沒有下載過依賴的同名插件的話需要下載安裝,然后重啟一下idea-->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>

<!--數(shù)據(jù)庫連接驅(qū)動(dòng)-->
<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層實(shí)體類

/**
 * @author : mereign
 * @date : 2022/3/13 - 14:28
 * @desc : user實(shí)體類
 */

// 在編譯期間生成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接口相對(duì)應(yīng)的接口實(shí)現(xiàn)類
@Mapper
public interface UserMapper extends BaseMapper<User> {
}

測(cè)試類

/**
 * @author : mereign
 * @date : 2022/3/13 - 15:50
 * @desc : 測(cè)試類簡(jiǎn)單測(cè)試mp的查詢方法
 */

@SpringBootTest
public class MybatisPlusTest {

    @Autowired
    UserMapper mapper;

    @Test
    public void selectListTest() {
        // 通過條件構(gòu)造器查詢到一個(gè)list集合,如果沒有條件的話參數(shù)設(shè)置為null
        List<User> users = mapper.selectList(null);
        users.forEach(System.out::println);
    }
}

入門案例查詢結(jié)果

入門案例中的小知識(shí)點(diǎn)

??測(cè)試類中注入mapper組件的時(shí)候代碼會(huì)報(bào)紅,但是并不會(huì)影響最終的程序執(zhí)行結(jié)果。原因是:@Mapper接口將該接口動(dòng)態(tài)生成的代理類注入到IOC容器中起相應(yīng)的作用,所以使用自動(dòng)注入mapper的時(shí)候會(huì)報(bào)紅在容器中找不到這個(gè)接口組件。解決方法:在mapper接口上加@Repository注解將類或接口標(biāo)注為一個(gè)持久層組件。這樣的話一個(gè)注解用來起作用,一個(gè)注解用來注入的時(shí)候找到接口組件防止報(bào)紅 ??

生成的SQL語句中,表名為mapper接口傳入的泛型首字母小寫,表中字段名為泛型類的封裝屬性,如果需要修改實(shí)體類綁定的表名的話需要在實(shí)體類上使用@TableName注解

到此這篇關(guān)于Mybatis-Plus環(huán)境配置與入門案例分析的文章就介紹到這了,更多相關(guān)Mybatis-Plus 入門內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java使用代碼模擬高并發(fā)操作的示例

    Java使用代碼模擬高并發(fā)操作的示例

    本篇文章主要介紹了Java使用代碼模擬高并發(fā)操作的示例,Java通過代碼模擬高并發(fā)可以以最快的方式發(fā)現(xiàn)我們系統(tǒng)中潛在的線程安全性問題,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-05-05
  • java web上傳文件和下載文件代碼片段分享

    java web上傳文件和下載文件代碼片段分享

    這篇文章主要為大家詳細(xì)介紹了java web上傳文件和下載文件代碼片段,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • 如何使用Spring?integration在Springboot中集成Mqtt詳解

    如何使用Spring?integration在Springboot中集成Mqtt詳解

    MQTT是多個(gè)客戶端通過一個(gè)中央服務(wù)器傳遞信息的多對(duì)多協(xié)議,能高效地將信息分發(fā)給一個(gè)或多個(gè)訂閱者,下面這篇文章主要給大家介紹了關(guān)于如何使用Spring?integration在Springboot中集成Mqtt的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • SpringBoot Test及注解的使用詳解

    SpringBoot Test及注解的使用詳解

    這篇文章主要介紹了SpringBoot Test及注解的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • java中接口和事件監(jiān)聽器的深入理解

    java中接口和事件監(jiān)聽器的深入理解

    這篇文章主要給大家介紹了關(guān)于java中接口和事件監(jiān)聽器的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • spring配置文件加密方法示例

    spring配置文件加密方法示例

    這篇文章主要介紹了spring配置文件加密方法示例,簡(jiǎn)單介紹了什么是配置文件,然后分享了在實(shí)際生產(chǎn)環(huán)境中,對(duì)配置文件不允許出現(xiàn)明文用戶名及密碼等信息需求的Java實(shí)現(xiàn)代碼,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • springboot使用事物注解方式代碼實(shí)例

    springboot使用事物注解方式代碼實(shí)例

    這篇文章主要介紹了springboot使用事物注解方式代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Java內(nèi)省之Introspector解讀

    Java內(nèi)省之Introspector解讀

    這篇文章主要介紹了Java內(nèi)省之Introspector解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • idea打開運(yùn)行配置java?web項(xiàng)目的全過程

    idea打開運(yùn)行配置java?web項(xiàng)目的全過程

    這篇文章主要給大家介紹了關(guān)于idea打開運(yùn)行配置java?web項(xiàng)目的相關(guān)資料,有些時(shí)候我們用IDEA跑之前用eclipse中運(yùn)行的項(xiàng)目的時(shí)候,總是不止所措,要不就是只展示html,要不就是不能部署成功,需要的朋友可以參考下
    2023-08-08
  • java關(guān)閉流連接IO工具類

    java關(guān)閉流連接IO工具類

    這篇文章主要為大家詳細(xì)介紹了java關(guān)閉流連接IO工具類,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03

最新評(píng)論