如何在Spring Boot中配置和使用MyBatis-Plus

在當今的Java開發中,Spring Boot已經成為了一個非常流行的框架,而MyBatis-Plus則是一個強大的ORM框架,為開發人員提供了更簡便的數據庫操作方式。很多開發者都在使用Spring Boot和MyBatis-Plus的組合來快速構建高效的應用。今天就來聊聊如何在Spring Boot項目中配置和使用MyBatis-Plus,幫助你更好地理解這兩者的結合。

創建Spring Boot項目

首先,創建一個新的Spring Boot項目。如果你使用的是Spring Initializr網站,可以選擇合適的依賴項。在這里,我們需要選擇“Spring Web”和“MyBatis-Plus”相關的依賴。如果你在IDE(如IntelliJ IDEA或Eclipse)中創建項目,可以通過添加Maven或Gradle依賴來實現。

pom.xml文件中添加MyBatis-Plus的依賴:

<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.1</version> <!-- 版本可以根據需要調整 -->
</dependency>

同時,確保你有數據庫驅動的依賴,例如MySQL:

<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.23</version>
</dependency>

配置數據源

接下來,我們需要在application.ymlapplication.properties文件中配置數據源。以MySQL為例,配置如下:

spring:datasource:url: jdbc:mysql://localhost:3306/your_database?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8username: your_usernamepassword: your_passworddriver-class-name: com.mysql.cj.jdbc.Driver

在這里,把your_databaseyour_usernameyour_password替換為你自己的數據庫名稱和登錄憑據。

創建實體類

在MyBatis-Plus中,實體類代表了數據庫中的表。創建一個簡單的實體類,比如User

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;@Data
@TableName("user") // 對應數據庫中的user表
public class User {@TableIdprivate Long id; // 主鍵private String name; // 用戶名private Integer age; // 年齡
}

在這個實體類中,@TableName注解用來指定對應的數據庫表名,@TableId注解指定字段為主鍵。

創建Mapper接口

接下來,需要創建Mapper接口。這個接口會繼承MyBatis-Plus提供的BaseMapper,從而具備基本的CRUD操作:

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;@Mapper
public interface UserMapper extends BaseMapper<User> {// 這里可以添加自定義的查詢方法
}

這個接口非常簡單,繼承BaseMapper后,它就具備了基本的增刪改查能力。

配置MyBatis-Plus

雖然在大多數情況下,MyBatis-Plus的默認配置就能滿足需求,但你可以通過配置文件進行一些定制化配置。在application.yml中,可以添加MyBatis-Plus的相關配置:

mybatis-plus:global-config:db-config:id-type: auto # 主鍵策略logic-delete-value: 1 # 邏輯刪除值logic-not-delete-value: 0 # 邏輯未刪除值

這里的配置項可以根據項目需要進行調整。比如,id-type設置為auto表示主鍵自增。

創建服務層

為了更好地組織代碼,可以創建一個服務層,用于處理業務邏輯。創建一個UserService類:

import com.baomidou.mybatisplus.extension.service.IService;public interface UserService extends IService<User> {// 這里可以添加自定義的業務方法
}

實現這個接口的類:

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {// 業務邏輯可以在這里實現
}

控制器層的創建

接下來,創建控制器層,用于處理HTTP請求。創建一個UserController類:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;import java.util.List;@RestController
@RequestMapping("/users")
public class UserController {@Autowiredprivate UserService userService;@GetMappingpublic List<User> getAllUsers() {return userService.list();}@PostMappingpublic boolean createUser(@RequestBody User user) {return userService.save(user);}@PutMapping("/{id}")public boolean updateUser(@PathVariable Long id, @RequestBody User user) {user.setId(id);return userService.updateById(user);}@DeleteMapping("/{id}")public boolean deleteUser(@PathVariable Long id) {return userService.removeById(id);}
}

在這個控制器中,我們定義了一些基本的RESTful API,用于獲取、創建、更新和刪除用戶信息。

測試功能

一切準備就緒后,可以使用Postman或其他工具測試API。啟動Spring Boot應用后,訪問http://localhost:8080/users可以獲取用戶列表,使用POST請求添加用戶,PUT請求更新用戶,DELETE請求刪除用戶。

總結

通過以上步驟,你已經成功配置并使用了MyBatis-Plus與Spring Boot的結合。MyBatis-Plus為開發人員提供了簡化的操作方式,減少了很多樣板代碼,讓開發變得更加高效。在實際項目中,你可以根據需求靈活運用MyBatis-Plus的各種功能,快速構建出高效、可維護的應用。

希望這篇文章能幫助你更好地理解Spring Boot和MyBatis-Plus的使用,快去實踐一下吧!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/71975.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/71975.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/71975.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【貪心算法3】

力扣1005.k次取反后最大化的數組和 鏈接: link 思路 既然要求最大和&#xff0c;那么不妨先給數組排個序&#xff0c;如果有負數&#xff0c;先處理負數從前往后給數組取反&#xff0c;如果負數處理完后k還有次數&#xff0c;此時數組全是正數了&#xff0c;只需要對第一個元…

自然語言處理中的語音識別技術:從聲波到語義的智能解碼

引言 語音識別&#xff08;Automatic Speech Recognition, ASR&#xff09;是自然語言處理&#xff08;NLP&#xff09;的關鍵分支&#xff0c;旨在將人類語音信號轉化為可處理的文本信息。隨著深度學習技術的突破&#xff0c;語音識別已從實驗室走向日常生活&#xff0c;賦能…

1688店鋪所有商品數據接口詳解

??一、接口概述淘寶開放平臺提供 1688.items.onsale.get/taobao.item_search_shop 接口&#xff0c;可批量獲取店鋪在售商品列表&#xff0c;包含商品 ID、標題、價格、銷量、圖片等核心信息。該接口適用于商品庫管理、競品監控、數據分析等場景 ?二、接口調用流程 前期準…

ArduPilot開源代碼之AP_OSD

ArduPilot開源代碼之AP_OSD 1. 源由2. 簡介3. 補丁4. 框架設計4.1 啟動代碼 (AP_OSD::init)4.2 任務代碼 (AP_OSD::osd_thread)4.3 實例初始化 (AP_OSD::init_backend) 5. 重要例程5.1 AP_OSD::update_stats5.2 AP_OSD::update_current_screen5.3 AP_OSD::update_osd 6. 總結7.…

qt open3dAlpha重建

qt open3dAlpha重建 效果展示二、流程三、代碼效果展示 二、流程 創建動作,鏈接到槽函數,并把動作放置菜單欄 參照前文 三、代碼 1、槽函數實現 void on_actionAlpha_triggered();//alpha重建 void MainWindow::

Deepseek可以通過多種方式幫助CAD加速工作

自動化操作&#xff1a;通過Deepseek的AI能力&#xff0c;可以編寫腳本來自動化重復性任務。例如&#xff0c;使用Python腳本調用Deepseek API&#xff0c;在CAD中實現自動化操作。 插件開發&#xff1a;結合Deepseek進行二次開發&#xff0c;可以創建自定義的CAD插件。例如&a…

Centos的ElasticSearch安裝教程

由于我們是用于校園學習&#xff0c;所以最好是關閉防火墻 systemctl stop firewalld systemctl disable firewalld 個人喜歡安裝在opt臨時目錄&#xff0c;大家可以隨意 在opt目錄下創建一個es-standonely-docker目錄 mkdir es-standonely-docker 進入目錄編輯yml文件 se…

c++ 調用 gurobi 庫,cmake,mac

gurobi 一般使用 python 調用&#xff0c;官方的培訓會議及資料大部分也都基于 python。 由于最近上手了 c&#xff0c;因此想試試 c 怎么調用 gurobi。但我發現&#xff0c;c 調用第三方庫比 python 或 java 要復雜不少。python 中直接 import 第三方庫&#xff0c;java 加載…

Python基于Django的醫用耗材網上申領系統【附源碼、文檔說明】

博主介紹&#xff1a;?Java老徐、7年大廠程序員經歷。全網粉絲12w、csdn博客專家、掘金/華為云/阿里云/InfoQ等平臺優質作者、專注于Java技術領域和畢業項目實戰? &#x1f345;文末獲取源碼聯系&#x1f345; &#x1f447;&#x1f3fb; 精彩專欄推薦訂閱&#x1f447;&…

Python中很常用的100個函數整理

Python 內置函數提供了強大的工具&#xff0c;涵蓋數據處理、數學運算、迭代控制、類型轉換等。本文總結了 100 個常用內置函數&#xff0c;并配備示例代碼&#xff0c;提高編程效率。 1. abs() 取絕對值 print(abs(-10)) # 10 2. all() 判斷所有元素是否為真 print(all([…

Python畢業設計選題:基于django+vue的疫情數據可視化分析系統

開發語言&#xff1a;Python框架&#xff1a;djangoPython版本&#xff1a;python3.7.7數據庫&#xff1a;mysql 5.7數據庫工具&#xff1a;Navicat11開發軟件&#xff1a;PyCharm 系統展示 管理員登錄 管理員功能界面 用戶管理 員工管理 疫情信息管理 檢測預約管理 檢測結果…

C#程序結構及基本組成說明

C# 程序的結構主要由以下幾個部分組成,以下是對其結構的詳細說明和示例: 1. 基本組成部分 命名空間 (Namespace) 用于組織代碼,避免命名沖突。通過 using 引入其他命名空間。 using System; // 引入 System 命名空間類 (Class) C# 是面向對象的語言,所有代碼必須定義在類或…

Python 編程題 第八節:字符串變形、壓縮字符串、三個數的最大乘積、判定字符是否唯一、IP地址轉換

字符串變形 swapcase()方法將字符串大小寫轉換&#xff1b;split()方法將字符串以括號內的符號分隔并以列表形式返回 sinput() ls.split(" ") ll[::-1] s"" for i in l:ai.swapcase()sas" " print(s[0:len(s)-1]) 壓縮字符串 很巧妙的方法 …

大語言模型學習--向量數據庫基礎知識

1.向量 向量是多維數據空間中的一個坐標點。 向量類型 圖像向量 文本向量 語音向量 Embedding 非結構化數據轉換為向量過程 通過深度學習訓練&#xff0c;將真實世界離散數據&#xff0c;投影到高維數據空間上&#xff0c;通過數據在空間中間的距離體現真實世界的相似度 V…

項目工坊 | Python驅動淘寶信息爬蟲

目錄 前言 1 完整代碼 2 代碼解讀 2.1 導入模塊 2.2 定義 TaoBao 類 2.3 search_infor_price_from_web 方法 2.3.1 獲取下載路徑 2.3.2 設置瀏覽器選項 2.3.3 反爬蟲處理 2.3.4 啟動瀏覽器 2.3.5 修改瀏覽器屬性 2.3.6 設置下載行為 2.3.7 打開淘寶登錄頁面 2.3.…

藍橋杯題型

藍橋杯 藍橋杯題型分類語法基礎藝術與籃球&#xff08;日期問題&#xff09;時間顯示&#xff08;時間問題&#xff09;跑步計劃&#xff08;日期問題&#xff09;偶串(字符&#xff09;最長子序列&#xff08;字符&#xff09;字母數&#xff08;進制轉換&#xff09;6個0&…

【C語言】文件操作篇

目錄 文件的基本概念文本文件和二進制文件的差異 文件指針FILE 結構體文件指針的初始化和賦值 文件打開與關閉常見操作文件的打開文件的關閉 常見問題打開文件時的路徑問題打開文件失敗的常見原因fclose 函數的重要性 文件讀寫操作常見操作字符讀寫字符串讀寫格式化讀寫二進制讀…

【leetcode hot 100 21】合并兩個有序鏈表

解法一&#xff1a;新建一個鏈表存放有序的合并鏈表。當list1和list2至少有一個非空時&#xff0c;返回非空的&#xff1b;否則找出兩個鏈表的最小值作為新鏈表的頭&#xff0c;然后依次比較兩鏈表&#xff0c;每次都先插入小的值。 /*** Definition for singly-linked list.*…

Ubuntu 24.04.2 安裝 PostgreSQL 16 、PostGIS 3

安裝 PostgreSQL 16 apt install postgresql-16passwd postgres&#xff0c;修改 postgres 用戶密碼su postgrespsql -U postgres, 以 postgres 的身份登錄數據庫alter user postgres with password abc123;\q 退出/etc/postgresql/16/main/postgresql.conf 可修改 #listen_ad…

Spring Boot框架總結(超級詳細)

前言 本篇文章包含Springboot配置文件解釋、熱部署、自動裝配原理源碼級剖析、內嵌tomcat源碼級剖析、緩存深入、多環境部署等等&#xff0c;如果能耐心看完&#xff0c;想必會有不少收獲。 一、Spring Boot基礎應用 Spring Boot特征 概念&#xff1a; 約定優于配置&#…