Maison > Java > javaDidacticiel > Comment démarrer une application Spring Boot + JPA + MySQL

Comment démarrer une application Spring Boot + JPA + MySQL

王林
Libérer: 2024-08-21 22:31:21
original
704 Les gens l'ont consulté

Avant de passer à la création du projet, j'expliquerai brièvement ce que sont les technologies Spring Boot, JPA et MySQL.

.
  • Spring Boot : est un framework Java utilisé pour simplifier le développement d'applications Spring, permettant la création d'applications autonomes, qui peuvent être exécutées avec une simple commande, sans avoir besoin d'une configuration complexe.
  • JPA : Java Persistence API est une spécification Java qui définit comment les objets Java doivent être mappés aux bases de données relationnelles (ORM).
  • MySQL : système de gestion de bases de données relationnelles (SGBDR) open source de renommée mondiale. Il est largement utilisé pour stocker, organiser et gérer de gros volumes de données dans des applications Web et d'entreprise.

Avec ces 3 technologies, nous pouvons développer des applications web robustes, évolutives et performantes.

Création de projet

Nous créerons le projet dans un outil en ligne appelé : Spring Initializr qui facilite la création de projets Spring Boot.

Lorsque vous entrez l'URL, vous verrez un écran comme celui-ci :

Como iniciar um aplicativo Spring Boot + JPA + MySQL

Nous allons configurer certaines choses sur le côté gauche, telles que :

  • Type de projet : Maven
  • Langue : Java
  • Version Spring Boot : 3.3.2

Dans les métadonnées du projet, vous passerez par :

  • Groupe : br.com.(ex : br.com.josemarinho)
  • Artefact et nom : spring-jpa-mysql
  • Description : Projet utilisant Spring Boot, JPA et MySQL
  • Nom du package : généré automatiquement en fonction du groupe et de l'artefact.
  • Conditionnement : Pot
  • Java : 17

Sur le côté droit vous aurez les dépendances de notre projet, il faut en ajouter 3, à savoir :

  • Web de printemps
  • Données de printemps JPA
  • Pilote MySQL

Au final, cela ressemblera à ceci :

Como iniciar um aplicativo Spring Boot + JPA + MySQL

Après la configuration, appuyez simplement sur le bouton Générer, où vous commencerez à télécharger un Zip contenant tous les répertoires/fichiers du projet. Ensuite, décompressez et ouvrez simplement dans votre IDE préféré.

Première course

Dès que vous ouvrez le projet et essayez d'exécuter le programme, il signalera une erreur d'exécution indiquant ce qui suit :

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
Copier après la connexion

Cela se produit car Spring Boot ne peut pas configurer automatiquement une DataSource pour l'application. Devons-nous configurer ?

Dans le projet, il y aura un répertoire appelé ressources, dans ce répertoire il y a quelques fichiers, parmi lesquels un fichier appelé application.properties où se trouvent les paramètres d'un projet Spring Boot. J'aime utiliser sa version YAML/YML, alors supprimez simplement ce fichier et créez-en un autre appelé application.yml, ressemblant à ceci :

Como iniciar um aplicativo Spring Boot + JPA + MySQL

Définissons l'url à laquelle notre application se connectera, le pilote, le nom d'utilisateur et le mot de passe :

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
Copier après la connexion

Dans application.properties, cela ressemblerait à ceci :

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
Copier après la connexion

D'accord, exécutez à nouveau le projet et vous verrez un résultat comme celui-ci.

Como iniciar um aplicativo Spring Boot + JPA + MySQL

Création d'entité

Dans ma base de données j'ai une table simple appelée utilisateurs dans laquelle il y a 2 champs :

  • id : incrément automatique d'entier de clé primaire
  • utilisateur : varchar(255)

Como iniciar um aplicativo Spring Boot + JPA + MySQL

Avec lui, nous ferons la première étape pour mapper cette table dans un contexte Java, en créant une entité. Pour ce faire, créez une classe appelée User, au final elle devrait ressembler à ceci :

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

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

    // Getters e Setters
}
Copier après la connexion
  • @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> { }
Copier après la connexion

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());
    }
}
Copier après la connexion

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.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal