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

SpringBoot中使用MyBatis-Plus詳細(xì)步驟

 更新時間:2025年01月21日 15:27:24   作者:m0_74825466  
MyBatis-Plus是MyBatis的增強(qiáng)工具,簡化了MyBatis的使用,本文通過實例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧

一、MyBatis-Plus的使用步驟

1.引入MybatisPlus的起步依賴

MyBatisPlus官方提供了starter依賴包,其中集成了Mybatis和MybatisPlus的所有功能,并且實現(xiàn)了自動裝配效果。
因此我們可以用_MybatisPlusstarter_直接代替Mybatisstarter:

<!--Mybatisplus-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.3.1</version>
</dependency>

2.定義Mapper(也叫dao)層的接口

用我們自定義的dao接口繼承MybatisPlus提供的BaseMapper接口:

public interface UserMapper extends BaseMapper<User>?{
}

在該接口中,提供了許多基本的sql增刪改查方法,我們無需寫sql語句,直接調(diào)用這些方法即可完成對數(shù)據(jù)的增刪改查;

3.MyBatis-Plus中常用注解

MyBatisPlus會通過掃描實體類,并基于反射獲取實體類的屬性名稱,然后匹配到數(shù)據(jù)庫表中相應(yīng)字段。具體關(guān)系如下圖:

因此,我們在定義實體類和數(shù)據(jù)庫表時,應(yīng)該遵循MP中一些默認(rèn)的約定(規(guī)范)來確保字段名和屬性名正確的匹配到。約定如下:

  • 類名:蛇峰轉(zhuǎn)下劉線作為表名
  • 名為id的屬性:作為表中的主鍵
  • 變量名:陀峰轉(zhuǎn)下劉線作為表的字段名

如果在寫Java代碼時,我們某些代碼不想符合上述三條約定的寫法;也可以使用MP中的常見注解來自定義約定,如下:

4. 使用MyBatis-Plus時要做如下配置

(1)如果是在Spring Boot 工程中,要配置Mapper接口所在的包:在Spring Boot的啟動類上添加**@MapperScan**注解,并指定Mapper接口所在的包路徑。

@SpringBootApplication
@MapperScan("com.baomidou.mybatisplus.samples.quickstart.mapper")
public class Application {
?
 ? ?public static void main(String[] args) {
 ? ? ? ?SpringApplication.run(Application.class, args);
 ?  }
?
}

注意:在該例子中:**“com.baomidou.mybatisplus.samples.quickstart.mapper”**是 MyBatis-Plus 官方示例項目中的一個包路徑,用于存放示例的 Mapper 接口。在實際應(yīng)用中,你應(yīng)該將@MapperScan注解中的字符串參數(shù)替換為你自己的項目中 Mapper 接口所在的包路徑。

(2)在Spring MVC工程中使用MyBatis-Plus要做如下配置

①首先,在.xml配置文件中配置 MapperScan 注解:

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
 ? ?<property name="basePackage" value="com.baomidou.mybatisplus.samples.quickstart.mapper"/>
</bean>

②然后,調(diào)整 SqlSessionFactory 為 MyBatis-Plus 的 SqlSessionFactory

<bean id="sqlSessionFactory" class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean">
 ? ?<property name="dataSource" ref="dataSource"/>
</bean>

③通常來說,一般的簡單工程,通過以上配置即可正常使用 MyBatis-Plus,具體可參考以下鏈接:Spring Boot 快速啟動示例 ? Spring Boot 快速啟動示例,

Spring MVC 快速啟動示例 ? ?Spring MVC 快速啟動示例。

同時 MyBatis-Plus 提供了大量的個性化配置來滿足不同復(fù)雜度的工程,大家可根據(jù)自己的項目按需取用,詳細(xì)配置請參考鏈接:

使用配置https://baomidou.com/reference/

Spring Boot 配置

在 Spring Boot 項目中,可以通過 application.ymlapplication.properties 文件來配置 MyBatis-Plus。

yml配置文件中MyBatisPlus的配置項繼承了MyBatis.原生配置和一些自己特有的配置。例如:

mybatis-plus:
    type-aliases-package: com.yzx.xxx.po #別名掃描包
    mapper-locations: "classpath*:/mapper/**/*,Xml" #Mapper.Xml文件地址
    configuration:
        map-underscore-to-camel-case: true #是否開啟下劃線和駝峰的映射
        cache-enabled: false #是否開啟二級緩存
    global-config:
        db-config:
        id-type: assign_id #id為雪花算法生成
        update-strategy: not_null #設(shè)置更新策略:只更新非空字段
?

代碼中g(shù)loba-config下的配置表示全局其優(yōu)先級小于實體類中注解的優(yōu)先級。

如下圖:

Spring MVC 配置

在傳統(tǒng)的 Spring MVC 項目中,可以通過 XML 配置文件來配置 MyBatis-Plus。

<bean id="sqlSessionFactory" class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean">
 ? ?<property name="dataSource" ref="dataSource"/>
 ? ?<property name="mapperLocations" value="classpath*:mapper/**/*.xml"/>
 ? ?<property name="typeAliasesPackage" value="com.your.domain"/>
 ? ?<!-- 其他配置 -->
</bean>

5.條件構(gòu)造器 Wrapper

前提:BaseMapper接口中自帶的增刪改查方法都是通過數(shù)據(jù)的Id作為條件進(jìn)行的;如果想要自定義查詢條件則需要用到條件構(gòu)造器:Wrapper

Wrapper類與其字類的繼承關(guān)系如下:

Wrapper類中提供的,用于自定義構(gòu)建查詢條件的一些方法:

下面,我們以最常用的QueryWrapper(查詢條件構(gòu)造器)為例,來演示如何使用條件構(gòu)造器來構(gòu)造我們的sql查詢

**QueryWrapper(查詢語句的條件構(gòu)造器):**它拓展了select的功能,可以指定查找哪些字段:

使用方法:

  • 首先,構(gòu)造一個Wrapper對像,并通過該對象來編寫查詢條件
  • 然后,將剛剛創(chuàng)建的Wrapper對象作為參數(shù)傳入查詢方法中

例如我們要進(jìn)行一個如下的sql查詢:

查詢出名字中帶o的,存款大于等于1000元的人的id、用戶名(username)、信息(info)和收入(balance)

SQL語句如下:

SELECT id,username,info,balance
FROM user
WHERE username LIKE '%o%'
AND balance >= 1000;

QueryWrapper(條件構(gòu)造器)來實現(xiàn)上述SQL語句的代碼如下:

@Test
public void testQuerywrapper(){
    //1.構(gòu)建查詢條件
    QueryWrapper<user> wrapper = new QueryWrapper<user>()
        .select("id","username","info","balance")
        .like("username","o")
        .ge("balance",1000);
    //2.查詢
    List<user> users = userMapper.selectList(wrapper);
}

條件構(gòu)造器Wrapper中的函數(shù)所對應(yīng)的sql語法,具體對應(yīng)表如下:

**另外:**在 MyBatis-Plus 中的IService接口是對service層的一個加強(qiáng),繼承了IService接口的service會自帶一些方法:(感興趣的小伙伴可以自行探索)

其中:save()方法是一個非常重要的功能,它用于將實體對象保存到數(shù)據(jù)庫中。具體地說,save 方法會根據(jù)實體對象的 ID(主鍵)來決定是執(zhí)行插入(insert)操作還是更新(update)操作。

  • **插入操作:**如果傳入的實體對象的 ID 為空(即該對象在數(shù)據(jù)庫中尚不存在),save 方法會執(zhí)行插入操作,將該對象插入到數(shù)據(jù)庫中,并自動生成一個 ID(如果使用了自動增長的主鍵策略)。
  • **更新操作:**如果傳入的實體對象的 ID 不為空(即該對象在數(shù)據(jù)庫中已經(jīng)存在),save 方法會執(zhí)行更新操作,將該對象的屬性更新到數(shù)據(jù)庫中對應(yīng)的記錄上。這里需要注意的是,MyBatis-Plus 默認(rèn)只會更新非空屬性,即如果實體對象的某個屬性為 null,則不會將該屬性更新到數(shù)據(jù)庫中(除非你進(jìn)行了特殊的配置)。

到此這篇關(guān)于SpringBoot中使用MyBatis-Plus詳細(xì)介紹的文章就介紹到這了,更多相關(guān)SpringBoot使用MyBatis-Plus內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot中整合Minio文件存儲的安裝部署過程

    SpringBoot中整合Minio文件存儲的安裝部署過程

    這篇文章主要介紹了SpringBoot整合Minio文件存儲的相關(guān)知識,詳細(xì)介紹了Minio安裝部署過程,需要的朋友可以參考下
    2022-04-04
  • Java實現(xiàn)手寫線程池實例并測試詳解

    Java實現(xiàn)手寫線程池實例并測試詳解

    這篇文章主要來模擬一下線程池和工作隊列的流程,以及編寫代碼和測試類進(jìn)行測試。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2023-02-02
  • spring cloud 分布式鏈路追蹤的方法

    spring cloud 分布式鏈路追蹤的方法

    這篇文章主要介紹了spring cloud 分布式鏈路追蹤的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • 使用log4j MDC實現(xiàn)日志追蹤

    使用log4j MDC實現(xiàn)日志追蹤

    這篇文章主要介紹了使用log4j MDC實現(xiàn)日志追蹤方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • SpringBoot 文件上傳和下載的實現(xiàn)源碼

    SpringBoot 文件上傳和下載的實現(xiàn)源碼

    這篇文章主要介紹了SpringBoot 文件上傳和下載的實現(xiàn)源碼,代碼簡單易懂非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2018-04-04
  • java讀取JSON文件的多種實現(xiàn)方式

    java讀取JSON文件的多種實現(xiàn)方式

    這篇文章主要介紹了java讀取JSON文件的多種實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Java實現(xiàn)的AES256加密解密功能示例

    Java實現(xiàn)的AES256加密解密功能示例

    這篇文章主要介紹了Java實現(xiàn)的AES256加密解密功能,結(jié)合完整實例形式分析了Java實現(xiàn)AES256加密解密功能的步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2017-02-02
  • java簡單實現(xiàn)用語音讀txt文檔方法總結(jié)

    java簡單實現(xiàn)用語音讀txt文檔方法總結(jié)

    在本篇文章里小編給大家整理了關(guān)于java簡單實現(xiàn)用語音讀txt文檔的詳細(xì)方法總結(jié),有需要的朋友們參考下。
    2019-06-06
  • Java實現(xiàn)LRU緩存的實例詳解

    Java實現(xiàn)LRU緩存的實例詳解

    這篇文章主要介紹了Java實現(xiàn)LRU緩存的實例詳解的相關(guān)資料,這里提供實例幫助大家理解掌握這部分內(nèi)容,需要的朋友可以參考下
    2017-08-08
  • spring聲明式事務(wù)管理解析

    spring聲明式事務(wù)管理解析

    這篇文章主要為大家詳細(xì)介紹了spring聲明式事務(wù)管理,對spring事務(wù)管理進(jìn)行深入了解,感興趣的小伙伴們可以參考一下
    2016-10-10

最新評論