SpringBoot2.0實戰 | 第二章:集成SpringBootJPA完成CURD

目標

整合 SpringBootJPA,實現對 mysql 數據庫表的增刪查改操作。

準備工作

初始化數據庫

在 mysql 的 test 庫中創建表 user,腳本如下,其中主鍵設置爲自動增長。

DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `id` BIGINT(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主鍵',
  `name` VARCHAR(64) NOT NULL COMMENT '名稱',
  `sex` TINYINT(2) UNSIGNED NOT NULL DEFAULT '0' COMMENT '性別',
  `birthday` DATE NOT NULL DEFAULT '0000-00-00' COMMENT '出生日期',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用戶';

操作步驟

添加依賴

引入 Spring Boot Starter 父工程

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.5.RELEASE</version>
</parent>

引入 spring-boot-starter-webspring-boot-starter-data-jpamysql 的依賴

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>
</dependencies>

配置

SpringBoot 默認使用 application.properties(或者 application.yml)作爲項目配置文件,本課程使用 application.yml。

在 src/main/resources 目錄下添加 application.yml 文件。

配置數據源及 JPA 相關配置

spring:
  datasource:
    url: jdbc:mysql://192.168.247.130:3306/test
    driver-class-name: com.mysql.jdbc.Driver
    username: app
    password: 123456

  jpa:
    database: mysql
    # 顯示後臺處理的SQL語句
    show-sql: true
    # 自動檢查實體和數據庫表是否一致,如果不一致則會進行更新數據庫表
    hibernate:
      ddl-auto: none

編碼

  1. 編寫實體類 User
  • 類上添加註解 @Entity
  • 主鍵添加註解 @Id
  • 主鍵自增添加註解 @GeneratedValue
  • 日期格式添加註解 @DateTimeFormat(pattern = “yyyy-MM-dd”),用於定義前端入參格式
@Entity
public class User {

    @Id
    @GeneratedValue(strategy= GenerationType.IDENTITY)
    private Long id;
    private String name;
    private Integer sex;
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate birthday;

    // 省略 get & set 方法
}
  1. 編寫 Repository 類

JPA 提供的 JpaRepository 接口已經實現了對單表的增刪查改操作以及一些其它常用的方法。

創建接口 UserRepository,繼承 JpaRepository 接口,內容如下

public interface UserRepository extends JpaRepository<User, Long> {}
  1. 編寫 Controller 接口

創建 controller 類,實現增刪查改交換接口

@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserRepository userRepository;

    @PostMapping("/add")
    public List<User> add(User user) {
        userRepository.save(user);
        return userRepository.findAll();
    }

    @PostMapping("/delete")
    public List<User> delete(Long id) {
        userRepository.deleteById(id);
        return userRepository.findAll();
    }

    @PostMapping("/list")
    public List<User> list() {
        return userRepository.findAll();
    }

    @PostMapping("/update")
    public List<User> update(User user) {
        userRepository.save(user);
        return userRepository.findAll();
    }

}

驗證結果

因爲本章內容需要使用 post 提交方式,故不能在地址欄簡單地輸入地址進行請求,建議使用 postman 進行操作。

源碼地址

本章源碼 : https://gitee.com/gongm_24/spring-boot-tutorial.git

結束語

JPA 底層使用的是 Hibernate 框架,已經封裝了對單表的各種操作,只需要實現 JpaRepository 接口即可以獲得對當前表的各種操作方法,這使得使用 JPA 進行數據庫的 CURD 操作變得非常簡單。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章