首頁  >  文章  >  Java  >  如何啟動 Spring Boot + JPA + MySQL 應用程式

如何啟動 Spring Boot + JPA + MySQL 應用程式

王林
王林原創
2024-08-21 22:31:21677瀏覽

在我們開始創建專案之前,我先簡單介紹一下Spring BootJPAMySQL.

是什麼技術。
  • Spring Boot:是一個Java框架,用於簡化Spring應用程式的開發,允許創建獨立的應用程序,只需簡單的命令即可執行,無需複雜的配置。
  • JPA:Java Persistence API 是一種 Java 規範,定義了 Java 物件應如何對應到關聯式資料庫 (ORM)。
  • MySQL:世界著名的開源關係型資料庫管理系統(RDBMS)。它廣泛用於儲存、組織和管理 Web 和企業應用程式中的大量資料。

透過這 3 項技術,我們可以開發健壯、可擴展且高效能的 Web 應用程式。

專案創建

我們將在一個名為 Spring Initializr 的線上工具中建立項目,該工具有助於 Spring Boot 項目的創建。

當您輸入網址時,您將看到以下畫面:

Como iniciar um aplicativo Spring Boot + JPA + MySQL

我們將在左側配置一些東西,例如:

  • 專案類型:Maven
  • 語言:Java
  • Spring Boot 版本:3.3.2

在項目元資料中,您將通過:

  • 群組:br.com。 (例如:br.com.josemarinho)
  • 工件與名稱:spring-jpa-mysql
  • 描述:使用 Spring Boot、JPA 和 MySQL 的專案
  • 套件名稱:根據Group和Artifact自動產生。
  • 包裝:罐子
  • Java:17

右邊會有我們專案的依賴,我們需要增加3個,即:

  • Spring Web
  • Spring Data JPA
  • MySQL 驅動程式

最後會是這樣的:

Como iniciar um aplicativo Spring Boot + JPA + MySQL

設定後,只需按產生按鈕,您將開始下載包含所有專案目錄/檔案的Zip。然後,只需解壓縮並在您喜歡的 IDE 中打開即可。

第一次運行

一旦您打開專案並嘗試執行該程序,它將報告一個運行時錯誤,內容如下:

Description:

Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.

Reason: Failed to determine a suitable driver class

發生這種情況是因為 Spring Boot 無法自動為應用程式配置資料來源。我們要配置嗎?

專案中會有一個名為resources的目錄,該目錄下方有一些文件,其中有一個名為application.properties的文件,這是Spring Boot專案的設定所在。我喜歡使用它的 YAML/YML 版本,所以只需刪除這個文件並創建另一個名為 application.yml 的文件,如下所示:

Como iniciar um aplicativo Spring Boot + JPA + MySQL

讓我們定義我們的應用程式將連接的 url驅動程式使用者名稱密碼

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: username
    password: password
    url: jdbc:mysql://127.0.0.1:3306/seu_banco_de_dados

在 application.properties 中它看起來像這樣:

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

好的,現在再次運行該項目,您將看到這樣的輸出。

Como iniciar um aplicativo Spring Boot + JPA + MySQL

實體創建

在我的資料庫中,我有一個名為 users 的簡單表,其中有 2 個欄位:

  • id:主鍵整數自增
  • 使用者:varchar(255)

Como iniciar um aplicativo Spring Boot + JPA + MySQL

有了它,我們將邁出第一步,將該表映射到 Java 上下文中,創建一個實體。為此,請建立一個名為 User 的類,最終它應該如下所示:

@Entity
@Table(name = "usuarios")
public class Usuario {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;
    private String usuario;

    // Getters e Setters
}
  • @Entity: Marca a classe como uma entidade JPA. Isso indica ao JPA que a classe deve ser persistida em um banco de dados.
  • @Table(name = "produto"): Especifica o nome da tabela no banco de dados à qual a entidade está mapeada. Se essa anotação não for fornecida, o JPA assumirá que o nome da tabela é o mesmo que o nome da classe.
  • @Id: Indica que o campo é a chave primária da entidade.
  • @GeneratedValue: Indica a estratégia que iremos gerar os valores, no caso escolhemos que o próprio banco de dados irá gerar automaticamente para nós, o padrão é o GenerationType.AUTO.

Agora que temos nossa entidade já desenvolvida precisamos criar nossos Repositórios que implementarão o JPA para realizar manipulações no Banco de Dados.

Criação dos Repositórios utilizando JPA

Para iniciar crie uma interface chamada UsuarioRepositorio, essa interface vai herdar as características de JpaRepository<> passando dois valores genéricos, o primeiro é a entidade e o segundo é o tipo do Id. Não podemos deixar de esquecer de anotar a classe com a anotação @Repository, ficando dessa forma:

@Repository
public interface UsuarioRepositorio extends JpaRepository<Usuario, Integer> { }

O JpaRepository é uma interface do Spring Data JPA que fornece diversos métodos prontos para realizar operações de acesso a dados em uma aplicação, como por exemplo o findAll() que retorna todos os dados de uma determinada tabela de banco de dados. No final do artigo estarei deixando alguns links falando mais sobre.

Já temos o suficiente para realizar algumas consultas, vamos criar um ponto de entrada na nossa aplicação para ver esses dados.
Crie uma controller chamada: UsuariosController.
Nela vamos anotar com 2 anotações: @RestController e @RequestMapping("/v1/usuarios") para mapear a rota da nossa controller

Vamos fazer injeção de dependência da UsuarioRepository e criar um endpoint GET para obter os dados da controller.

No final ficará assim:

@RestController
@RequestMapping("/v1/usuarios")
public class UsuarioController {

    private UsuarioRepositorio usuarioRepositorio;

    public UsuarioController(UsuarioRepositorio usuarioRepositorio) {
        this.usuarioRepositorio = usuarioRepositorio;
    }

    @GetMapping()
    public ResponseEntity getUsuarios() {
        return ResponseEntity.status(HttpStatus.OK).body(usuarioRepositorio.findAll());
    }
}

Note que estou utilizando o método findAll() que mencionei mais acima existente na repository.

Em minha tabela de banco de dados, já possuo alguns dados. Fazendo uma consulta simples, virá o seguinte resultado:

Como iniciar um aplicativo Spring Boot + JPA + MySQL

Vimos que temos 3 dados na tabela.

Após salvar o conteúdo da controller e executar novamente o projeto, quando realizarmos uma requisição do tipo GET na url localhost:8080/v1/usuarios, virá o seguinte resultado:

Como iniciar um aplicativo Spring Boot + JPA + MySQL

Vemos que o resultado que foi resgatado ao realizar uma consulta no banco de dados foi exatamente o mesmo ao fazer uma requisição GET em nossa aplicação graças ao JPA e ao Spring Boot.

Chegamos ao final de mais um post. Estarei deixando alguns links de referência:

  • Jpa Repository
  • Anotação Generated Value
  • Driver MySQL JPA
  • Spring Boot YAML vs Properties
  • Spring Data JPA

O repositório do artigo se encontra nesse link: Repositório Projeto

Um abraço e bons estudos! Até mais.

以上是如何啟動 Spring Boot + JPA + MySQL 應用程式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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