Springboot使用Mybatis

一、Spring Boot使用Mybatis配置

首先需要在maven中添加mybatis依賴:

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.1.1</version>
</dependency>

接著,在application.properties文件中配置Mybatis相關屬性:

mybatis.config-location=classpath:mybatis-config.xml
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=com.example.demo.domain

其中,mybatis.config-location指定了Mybatis的配置文件路徑,mybatis.mapper-locations指定了Mybatis的Mapper文件路徑,mybatis.type-aliases-package指定了實體類的包路徑。

二、Spring Boot使用Mybatis連接MySQL

在使用Mybatis之前,需要先配置MySQL的連接信息。可以在application.properties中設置相關屬性:

spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=123456

其中,spring.datasource.url指定了MySQL的連接地址和埠號,spring.datasource.driver-class-name指定了MySQL的驅動名,spring.datasource.username和spring.datasource.password指定了MySQL連接的用戶名和密碼。

接著,我們就可以編寫Mapper映射文件和Dao層代碼進行MySQL資料庫的操作了。

三、Spring Boot使用Mybatis存null數據

在操作MySQL資料庫時,如果某個欄位的值為null,那麼Mybatis在執行插入或更新操作時會將該欄位的值設置為NULL,而不是直接忽略該欄位。如果不希望將null值存入資料庫中,可以在Mapper映射文件中使用sqlProvider方式指定非空欄位。

<insert id="insertUser" parameterType="User">
    <selectKey keyProperty="id" resultType="int" order="AFTER">
        SELECT LAST_INSERT_ID()
    </selectKey>
    insert into user
    <set>
        <if test="name != null">
            name = #{name},
        </if>
        <if test="age != null">
            age = #{age},
        </if>
        <if test="address != null">
            address = #{address},
        </if>
    </set>
</insert>

在上述代碼中,<if>標籤中判斷了欄位的值是否為null,如果不為null則插入該欄位,否則不插入。

四、Spring Boot使用Mybatis緩存

Mybatis默認開啟了一級緩存,無需任何配置即可使用,但是一級緩存的作用範圍只限於同一個SqlSession。對於不同的SqlSession,無法共享緩存資源。Mybatis也提供了二級緩存的功能,可以自行選擇是否啟用。

在application.properties中配置如下緩存屬性:

# 啟用緩存
mybatis.configuration.cache-enabled=true
# 指定緩存類型為Ehcache
mybatis.configuration.cache-enabled-type=EHCACHE

在Mapper映射文件的<mapper>標籤中使用cache配置指定緩存,例如:

<cache eviction="FIFO" flushInterval="60000" size="512">
</cache>

其中,eviction指定了緩存的淘汰策略,flushInterval指定了緩存的刷新時間間隔,size指定了緩存容量。

五、Spring Boot使用的技術

Spring Boot結合Mybatis可以使用很多其它技術棧來實現更加完善的功能,例如:

1. Spring Boot結合FreeMarker模板引擎使用

首先需要在maven中添加FreeMarker依賴:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>

接著,在application.properties中配置FreeMarker相關屬性:

spring.freemarker.template-loader-path=classpath:/templates/
spring.freemarker.suffix=.ftl

其中,spring.freemarker.template-loader-path指定了模板文件的路徑,spring.freemarker.suffix指定了模板文件的後綴名。

通過在Controller中返回ModelAndView對象,就可以使用FreeMarker模板引擎來渲染頁面了。

2. Spring Boot結合AOP使用

Spring Boot結合AOP可以很方便地實現類似於日誌、事務等方面的功能。

首先需要在maven中添加AOP依賴:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-aop</artifactId>
</dependency>

接著,在需要添加切面的類上使用@Aspect註解,並定義相關的切點和通知方法即可實現AOP功能。

3. Spring Boot結合註解使用

Spring Boot結合註解可以更加簡化開發過程,也更加直觀。

通過在Controller中使用@RestController註解、在Mapper介面中使用@Mapper註解等方式,可以大大簡化代碼的編寫。

六、Spring Boot使用Mybatis總結

本文對Spring Boot結合Mybatis的相關使用做了詳細的闡述,包括Mybatis的配置、MySQL連接、存null數據、緩存以及結合其它技術棧使用的方法等。通過本文的學習,相信讀者已經對Spring Boot如何使用Mybatis有了更加深入的了解。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/233950.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-11 17:11
下一篇 2024-12-11 17:11

相關推薦

  • 從ga角度解讀springboot

    springboot作為目前廣受歡迎的Java開發框架,其中的ga機制在整個開發過程中起著至關重要的作用。 一、ga是什麼 ga即Group Artifacts的縮寫,它是Mave…

    編程 2025-04-29
  • 理解Mybatis中的SQL Limit用法

    Mybatis是一種非常流行的ORM框架,提供了SQL映射配置文件,可以使用類似於傳統SQL語言的方式編寫SQL語句。其中,SQL的Limit語法是一個非常重要的知識點,能夠實現分…

    編程 2025-04-29
  • SpringBoot Get方式請求傳參用法介紹

    本文將從以下多個方面對SpringBoot Get方式請求傳參做詳細的闡述,包括URL傳參、路徑傳參、請求頭傳參、請求體傳參等,幫助讀者更加深入地了解Get請求方式下傳參的相關知識…

    編程 2025-04-27
  • SpringBoot如何設置不輸出Info日誌

    本篇文章將帶您了解如何在SpringBoot項目中關閉Info級別日誌輸出。 一、為什麼要關閉Info日誌 在開發中,我們經常會使用Log4j、Logback等框架來輸出日誌信息,…

    編程 2025-04-27
  • 解決springboot中scanBasePackages無法讀取子包的問題

    在使用springboot搭建項目時,可能會遇到scanBasePackages無法讀取子包的問題。本文將從幾個方面詳細闡述如何解決這個問題。 一、問題描述 在使用Springbo…

    編程 2025-04-25
  • SpringBoot請求參數綁定

    解答:SpringBoot請求參數綁定是指將HTTP請求中的參數與Controller方法的參數綁定起來,使得參數的傳遞變得簡單和方便。下面我們將從多個方面對SpringBoot請…

    編程 2025-04-25
  • Mybatis中update if詳解

    一、if標籤的基本用法 在Mybatis中使用update語句更新資料庫表中的一條或多條數據,我們通常通過if標籤來動態生成update語句。if標籤的使用方法如下: <up…

    編程 2025-04-25
  • Mybatis-plus條件構造器

    一、可重用性 Mybatis-plus作為Mybatis的擴展工具,提供了豐富的功能讓開發更加高效便捷。其中之一的條件構造器可以幫助我們構建各種查詢條件,而且支持鏈式調用,非常適合…

    編程 2025-04-25
  • Mybatis批量插入操作

    一、基本概念 Mybatis是一種基於java的持久層框架,旨在幫助開發人員簡化資料庫操作。該框架提供了多種方式來執行資料庫操作,其中包括批量插入。批量插入是一種在單個事務中提交多…

    編程 2025-04-25
  • MyBatis如何防止SQL注入

    MyBatis是一款開源的持久層框架,它可以簡化Java應用程序中的數據持久化過程,並提供了許多有用的功能。然而,安全問題一直是Web應用程序的一大挑戰,其中最嚴重的問題之一是SQ…

    編程 2025-04-25

發表回復

登錄後才能評論