最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot中使用MyBatis-Plus詳細步驟

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

一、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ù)庫表中相應字段。具體關系如下圖:

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

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

如果在寫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 接口。在實際應用中,你應該將@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 提供了大量的個性化配置來滿足不同復雜度的工程,大家可根據(jù)自己的項目按需取用,詳細配置請參考鏈接:

使用配置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 #設置更新策略:只更新非空字段
?

代碼中globa-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.條件構造器 Wrapper

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

Wrapper類與其字類的繼承關系如下:

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

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

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

使用方法:

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

例如我們要進行一個如下的sql查詢:

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

SQL語句如下:

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

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

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

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

**另外:**在 MyBatis-Plus 中的IService接口是對service層的一個加強,繼承了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ù)庫中對應的記錄上。這里需要注意的是,MyBatis-Plus 默認只會更新非空屬性,即如果實體對象的某個屬性為 null,則不會將該屬性更新到數(shù)據(jù)庫中(除非你進行了特殊的配置)。

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

相關文章

  • springboot2.2.2集成dubbo的實現(xiàn)方法

    springboot2.2.2集成dubbo的實現(xiàn)方法

    這篇文章主要介紹了springboot2.2.2集成dubbo的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-01-01
  • 解決poi導出時單元格樣式被覆蓋問題

    解決poi導出時單元格樣式被覆蓋問題

    這篇文章主要介紹了解決poi導出時單元格樣式被覆蓋問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • 深入學習SpringCloud之SpringCloud簡介

    深入學習SpringCloud之SpringCloud簡介

    Spring Cloud是一個一站式的開發(fā)分布式系統(tǒng)的框架,為開發(fā)者提供了一系列的構建分布式系統(tǒng)的工具集,本文給大家介紹springcloud的相關知識,感興趣的朋友跟隨一起看看吧
    2021-04-04
  • spring-gateway filters添加自定義過濾器實現(xiàn)流程分析(可插拔)

    spring-gateway filters添加自定義過濾器實現(xiàn)流程分析(可插拔)

    這篇文章主要介紹了spring-gateway filters添加自定義過濾器實現(xiàn)流程分析(可插拔),本文通過實例圖文相結合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2025-05-05
  • JavaWeb利用郵箱幫用戶找回密碼

    JavaWeb利用郵箱幫用戶找回密碼

    這篇文章主要為大家詳細介紹了JavaWeb利用郵箱幫用戶找回密碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • Spring中Bean初始化和銷毀的方式總結

    Spring中Bean初始化和銷毀的方式總結

    這篇文章主要為大家整理了Spring中Bean初始化和銷毀的多種方式,文中的示例代碼講解詳細,具有一定的借鑒價值,需要的可以了解一下
    2023-04-04
  • 解析探秘fescar分布式事務實現(xiàn)原理

    解析探秘fescar分布式事務實現(xiàn)原理

    這篇文章主要為大家解析探秘fescar分布式事務的實現(xiàn)原理,fescar的txc模型實現(xiàn)非常有研究的價值,所以今天我們來好好翻一翻fescar項目的代碼
    2022-02-02
  • ReentrantLock條件變量使多個線程順序執(zhí)行

    ReentrantLock條件變量使多個線程順序執(zhí)行

    這篇文章主要為大家介紹了ReentrantLock條件變量使多個線程順序執(zhí)行,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • SpringBoot密碼加密的實現(xiàn)示例

    SpringBoot密碼加密的實現(xiàn)示例

    本文主要介紹了SpringBoot密碼加密的實現(xiàn)示例,包括引入依賴、配置加密工具、生成加密密鑰、加密密碼、配置解密,具有一定的參考價值,感興趣的可以了解一下
    2024-08-08
  • Spring?Boot如何處理@Resource示例分析

    Spring?Boot如何處理@Resource示例分析

    這篇文章主要為大家介紹了Spring?Boot如何處理@Resource示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07

最新評論

建湖县| 镇沅| 大同县| 和静县| 含山县| 民勤县| 台前县| 雷波县| 大英县| 峨眉山市| 三亚市| 黄陵县| 西乡县| 海宁市| 伊川县| 金坛市| 绍兴市| 同仁县| 黄石市| 德清县| 洛浦县| 井陉县| 永德县| 麻江县| 平远县| 竹山县| 阿瓦提县| 仲巴县| 辛集市| 水城县| 洪洞县| 德钦县| 上犹县| 丰宁| 治县。| 聂拉木县| 太仓市| 依安县| 广安市| 沙河市| 盐池县|