首頁 >Java >java教程 >基於Spring Boot和MyBatis Plus實作ORM映射

基於Spring Boot和MyBatis Plus實作ORM映射

王林
王林原創
2023-06-22 21:27:42977瀏覽

在Java web應用開發過程中,ORM(Object-Relational Mapping)映射技術用來將資料庫中的關係型資料對應到Java物件中,方便開發者進行資料存取與操作。 Spring Boot作為目前最受歡迎的Java web開發框架之一,已經提供了整合MyBatis的方式,而MyBatis Plus則是在MyBatis的基礎上擴展的一種ORM框架。本文將介紹如何使用Spring Boot和MyBatis Plus來實現ORM映射。

一、Spring Boot整合MyBatis Plus
在Spring Boot中使用MyBatis Plus非常簡單,只需在maven中加入MyBatis Plus的依賴即可。

<dependency>
  <groupId>com.baomidou</groupId>
  <artifactId>mybatis-plus-boot-starter</artifactId>
  <version>3.4.2</version>
</dependency>

同時,在application.properties或application.yml中配置MyBatis Plus相關參數,如下:

#数据库配置
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_plus?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
#MyBatis Plus配置
mybatis.configuration.cache-enabled=false
mybatis.mapper-locations=classpath:mapper/*.xml

其中,driver-class-name, url, username和password是資料庫相關配置,而mapper-locations是MyBatis Plus的SQL映射設定檔所在的路徑。

二、定義實體類別和Mapper介面
和MyBatis一樣,使用MyBatis Plus也需要定義實體類別和Mapper介面。下面以一個簡單的User表為例,定義對應的實體類別和Mapper介面。

  1. 定義實體類別
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class User {

    private Integer id;
    private String name;
    private Integer age;
    private String email;
    private Integer gender;
    private LocalDateTime createTime;
    private LocalDateTime updateTime;

}

使用註解@Getter、@Setter和@Builder可以簡化程式碼,而@NoArgsConstructor和@AllArgsConstructor是用來產生無參和全參構造函數的。

  1. 定義Mapper介面
public interface UserMapper extends BaseMapper<User> {
}

這裡使用了MyBatis Plus提供的BaseMapper,可以省去許多繁瑣的SQL作業。

三、使用MyBatis Plus進行資料庫操作
在定義完Mapper介面後,就可以使用MyBatis Plus來進行資料庫操作了。

  1. 插入資料
User user = User.builder()
        .name("test")
        .age(20)
        .email("test@test.com")
        .gender(1)
        .createTime(LocalDateTime.now())
        .updateTime(LocalDateTime.now())
        .build();
int count = userMapper.insert(user);

在插入資料時,可以直接使用Mapper介面中提供的insert方法,MyBatis Plus會自動將實體類別的屬性對應到資料庫中的對應列。

  1. 查詢資料
List<User> userList = userMapper.selectList(null);

在查詢資料時,可以直接使用Mapper介面中提供的selectList方法,傳入null或一個空的QueryWrapper物件即可查詢出所有數據。另外,還可以使用MyBatis Plus提供的lambda表達式和鍊式操作來進行更為複雜的查詢,如下所示:

QueryWrapper<User> wrapper = Wrappers.<User>lambdaQuery()
        .eq(User::getGender, 1)
        .ge(User::getAge, 20)
        .orderByDesc(User::getCreateTime);
List<User> userList = userMapper.selectList(wrapper);

在上述程式碼中,使用Wrappers.4c8e0c17c3bd7e0081bb17cc795e1984lambdaQuery()定義了一個QueryWrapper對象,並且透過.eq、.ge和.orderByDesc鍊式操作來建構查詢條件和排序規則。

  1. 更新數據
User user = userMapper.selectById(id);
user.setAge(30);
int count = userMapper.updateById(user);

在更新數據時,可以先透過selectById查詢出需要更新的數據,然後對需要更新的屬性進行修改,並使用updateById將修改後的資料更新到資料庫中。

  1. 刪除資料
int count = userMapper.deleteById(id);

最後,在刪除資料時,只需呼叫Mapper介面中提供的deleteById方法即可。

四、結論
本文介紹如何使用Spring Boot和MyBatis Plus來實現ORM映射,透過簡單的設定和程式碼即可實現資料庫操作。 MyBatis Plus作為MyBatis的延伸框架,可以大幅簡化開發人員的工作量,同時提升程式碼的可讀性和可維護性。由於篇幅所限,本文只對MyBatis Plus的基本用法進行了介紹,更多進階功能請參考官方文件。

以上是基於Spring Boot和MyBatis Plus實作ORM映射的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn