Before we go to create the project, I will briefly explain what the technologiesSpring Boot,JPAandMySQL# #.
Spring Initializrthat facilitates the creation of Spring Boot projects.
When you enter the URL, you will see a screen like this:

Generatebutton, where you will start downloading a Zip containing all the project directories/files. Afterwards, just unzip and open in your preferred IDE.
First run As soon as you open the project and try to run the program, it will report a run-time error saying the following: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

urlwhere our app will connect,driver,usernameandpassword# #:
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
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
Entity Creation
With it, we will take the first step to map this table in a Java context, creating an Entity. To do this, create a class called User, in the end it should look like this:
@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 umainterfacechamada UsuarioRepositorio, essa interface vai herdar as características de JpaRepository<> passando dois valores genéricos, o primeiro é aentidadee o segundo é otipo 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{ }
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.
The above is the detailed content of How to start a Spring Boot + JPA + MySQL application. For more information, please follow other related articles on the PHP Chinese website!
What are the office software
What file is .exe
ICP coin prospect analysis
How to open html files on ipad
Introduction to the location of win10 control panel
What is the difference between original screen and assembled screen?
What software is ig
What is the difference between TCP protocol and UDP protocol?