Spring Boot中使用MyBatis實現資料存取和持久化
Spring Boot是一種快速開發框架,可以幫助開發人員快速建立WEB應用程式。而MyBatis是一種優秀的ORM框架,可以簡化Java與資料庫之間的資料存取與持久化。本文將介紹如何在Spring Boot中使用MyBatis實現資料存取和持久化。
一、Spring Boot整合MyBatis
- 添加依賴
在pom.xml檔案中加入MyBatis和MySQL依賴:
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.42</version> </dependency>
這裡我們使用mybatis-spring-boot-starter來整合MyBatis。
- 配置資料來源
在application.properties中新增資料庫連接屬性:
spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driverClassName=com.mysql.jdbc.Driver
這裡我們使用MySQL資料庫,並且使用root帳號連接,密碼為123456。
- 設定MyBatis
Spring Boot預設會自動掃描mapper路徑,我們只需要在application.properties中設定mapper路徑即可:
mybatis.mapper-locations=classpath:mapper/*.xml
此配置表示mapper檔案在專案的classpath下的mapper資料夾中。
在完成以上配置後,Spring Boot就已經完成了對MyBatis的整合工作。
二、寫實體類別和Mapper
- 寫實體類別
定義一個User類,表示資料庫中的一個使用者表:
public class User { private Long id; private String name; private Integer age; // 省略getter和setter方法 }
- 寫Mapper
定義一個UserMapper接口,用來定義User表的增刪改查操作:
public interface UserMapper { void saveUser(User user); void updateUser(User user); void deleteUser(Long id); User findUserById(Long id); List<User> findAllUsers(); }
這裡我們定義了增刪改查以及查詢所有使用者的方法。
三、寫Mapper.xml
接下來,我們需要寫UserMapper.xml文件,實作UserMapper中定義的操作:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.example.demo.mapper.UserMapper"> <insert id="saveUser" parameterType="com.example.demo.entity.User"> insert into user(name, age) values (#{name}, #{age}) </insert> <update id="updateUser" parameterType="com.example.demo.entity.User"> update user set name = #{name}, age = #{age} where id = #{id} </update> <delete id="deleteUser" parameterType="java.lang.Long"> delete from user where id = #{id} </delete> <select id="findUserById" parameterType="java.lang.Long" resultType="com.example.demo.entity.User"> select * from user where id = #{id} </select> <select id="findAllUsers" resultType="com.example.demo.entity.User"> select * from user </select> </mapper>
在該文件中,我們實現了UserMapper中定義的所有方法,其中parameterType表示參數類型,resultType表示傳回值類型。
四、寫Service類別與控制器
- 編寫Service類別
#定義一個UserService類,用於封裝對User表的動作:
@Service public class UserService { @Autowired private UserMapper userMapper; public void saveUser(User user) { userMapper.saveUser(user); } public void updateUser(User user) { userMapper.updateUser(user); } public void deleteUser(Long id) { userMapper.deleteUser(id); } public User findUserById(Long id) { return userMapper.findUserById(id); } public List<User> findAllUsers() { return userMapper.findAllUsers(); } }
在這個類別中,我們使用@Autowired註解注入了UserMapper,也就是可以使用UserMapper中定義的方法。
- 寫控制器
定義一個UserController類,實作對使用者的增刪改查操作:
@RestController @RequestMapping("/user") public class UserController { @Autowired private UserService userService; @PostMapping("/") public String saveUser(@RequestBody User user) { userService.saveUser(user); return "success"; } @PutMapping("/") public String updateUser(@RequestBody User user) { userService.updateUser(user); return "success"; } @DeleteMapping("/{id}") public String deleteUser(@PathVariable Long id) { userService.deleteUser(id); return "success"; } @GetMapping("/{id}") public User getUserById(@PathVariable Long id) { return userService.findUserById(id); } @GetMapping("/") public List<User> findAllUsers() { return userService.findAllUsers(); } }
在這個類別中,我們使用@ RestController註解表示目前類別是一個控制器,使用@RequestMapping註解指定了存取路徑。同時,使用@Autowired註解注入了UserService,也就是可以使用UserService中定義的方法。
五、測試
現在,我們已經完成了整個專案的建置和程式碼編寫。接下來,我們可以使用Postman等工具來測試控制器中定義的API。
使用POST請求來保存用戶訊息,請求體為:
{ "name": "张三", "age": 18 }
使用PUT請求來更新用戶訊息,請求體為:
{ "id": 1, "name": "李四", "age": 20 }
使用DELETE請求來刪除用戶信息,URL為:
http://localhost:8080/user/1
使用GET請求來獲取用戶信息,URL為:
http://localhost:8080/user/1
使用GET請求來獲取所有用戶信息,URL為:
http://localhost:8080/user/
六、總結
本文介紹如何在Spring Boot中使用MyBatis實現資料存取和持久化,並使用了一個簡單的範例來說明整個流程。 MyBatis可以讓Java程式對資料庫的操作變得更有效率和簡潔,如果您需要在Spring Boot中實現對資料庫的操作,可以考慮使用MyBatis。
以上是Spring Boot中使用MyBatis實現資料存取和持久化的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

iBatis與MyBatis:你該選擇哪一個?簡介:隨著Java語言的快速發展,許多持久化框架也應運而生。 iBatis和MyBatis是兩個備受歡迎的持久化框架,它們都提供了一個簡單而高效的資料存取解決方案。本文將介紹iBatis和MyBatis的特點和優勢,並給出一些具體的程式碼範例,幫助你選擇合適的框架。 iBatis簡介:iBatis是一個開源的持久化框架

MyBatis動態SQL標籤解讀:Set標籤用法詳解MyBatis是一個優秀的持久層框架,它提供了豐富的動態SQL標籤,可以靈活地建構資料庫操作語句。其中,Set標籤是用來產生UPDATE語句中SET子句的標籤,在更新作業中非常常用。本文將詳細解讀MyBatis中Set標籤的用法,以及透過具體的程式碼範例來示範其功能。什麼是Set標籤Set標籤用於MyBati

JPA和MyBatis:功能與效能比較分析引言:在Java開發中,持久化框架扮演著非常重要的角色。常見的持久化框架包括JPA(JavaPersistenceAPI)和MyBatis。本文將對這兩個框架的功能和效能進行比較分析,並提供具體的程式碼範例。一、功能對比:JPA:JPA是JavaEE的一部分,提供了一個物件導向的資料持久化解決方案。它透過註解或X

MyBatis中實現批量刪除語句的幾種方式,需要具體程式碼範例近年來,由於資料量的不斷增加,批量操作成為了資料庫操作的一個重要環節之一。在實際開發中,我們經常需要批量刪除資料庫中的記錄。本文將重點介紹在MyBatis中實作批量刪除語句的幾種方式,並提供相應的程式碼範例。使用foreach標籤實作批量刪除MyBatis提供了foreach標籤,可以方便地遍歷一個集

MyBatis批量刪除語句的使用方法詳解,需要具體程式碼範例引言:MyBatis是一款優秀的持久層框架,提供了豐富的SQL操作功能。在實際專案開發中,經常會遇到需要大量刪除資料的情況。本文將詳細介紹MyBatis批量刪除語句的使用方法,並附上具體的程式碼範例。使用場景:在資料庫中刪除大量資料時,逐條執行刪除語句效率低。此時,可以使用MyBatis的批次刪除功能

MyBatis快取機制詳解:一文讀懂快取儲存原理引言在使用MyBatis進行資料庫存取時,快取是一個非常重要的機制,能夠有效減少對資料庫的訪問,提高系統效能。本文將詳細介紹MyBatis的快取機制,包括快取的分類、儲存原理和具體的程式碼範例。一、快取的分類MyBatis的快取主要分為一級快取和二級快取兩種。一級緩存一級緩存是SqlSession級別的緩存,當在

MyBatis一級快取詳解:如何提升資料存取效率?在開發過程中,高效率的資料存取一直是程式設計師關注的焦點之一。而對於MyBatis這樣的持久層框架而言,快取是提升資料存取效率的關鍵方法之一。 MyBatis提供了一級快取和二級快取兩種快取機制,其中一級快取是預設開啟的。本文將詳細介紹MyBatis一級快取的機制,並提供具體的程式碼範例,幫助讀者更好地理

MyBatis是一款流行的Java持久層框架,廣泛應用於各種Java專案。其中,批次插入是常見的操作,可以有效提升資料庫操作的效能。本文將深入探討MyBatis中批量的Insert實作原理,並結合具體的程式碼範例進行詳細解析。 MyBatis中的批次Insert在MyBatis中,批量Insert操作通常使用動態SQL來實作。透過建構一條包含多個插入值的S
