Avant de passer à la création du projet, j'expliquerai brièvement ce que sont les technologies Spring Boot, JPA et MySQL.
.Avec ces 3 technologies, nous pouvons développer des applications web robustes, évolutives et performantes.
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 :
Nous allons configurer certaines choses sur le côté gauche, telles que :
Dans les métadonnées du projet, vous passerez par :
Sur le côté droit vous aurez les dépendances de notre projet, il faut en ajouter 3, à savoir :
Au final, cela ressemblera à ceci :
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é.
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
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 :
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
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
D'accord, exécutez à nouveau le projet et vous verrez un résultat comme celui-ci.
Dans ma base de données j'ai une table simple appelée utilisateurs dans laquelle il y a 2 champs :
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 }
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.
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:
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:
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:
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!