Home> Java> javaTutorial> body text

How to start a Spring Boot + JPA + MySQL application

王林
Release: 2024-08-21 22:31:21
Original
457 people have browsed it

Before we go to create the project, I will briefly explain what the technologiesSpring Boot,JPAandMySQL# #.

  • Spring Boot: is a Java framework used to simplify the development of Spring applications, allowing you to create standalone applications, which can be executed with a simple command, without the need for complex configuration.
  • JPA: Java Persistence API is a Java specification that defines how Java objects should be mapped to relational databases (ORM).
  • MySQL: World famous open source Relational Database Management System (RDBMS). It is widely used to store, organize and manage large volumes of data in web and enterprise applications.
With these 3 technologies, we can develop robust, scalable and high-performance web applications.

Project Creation

We will be creating the project in an online tool called:

Spring Initializrthat facilitates the creation of Spring Boot projects.

When you enter the URL, you will see a screen like this:

Como iniciar um aplicativo Spring Boot + JPA + MySQL

We will be configuring some things on the left side, such as:

    Project Type:
  • Maven
  • Language:
  • Java
  • Spring Boot Version:
  • 3.3.2
In Project Metadata you will go by:

    Group:
  • br.com.(ex: br.com.josemarinho)
  • Artifact and Name:
  • spring-jpa-mysql
  • Description:
  • Project using Spring Boot, JPA and MySQL
  • Package name:
  • automatically generated based on Group and Artifact.
  • Packaging:
  • Jar
  • Java:
  • 17
On the right side you will have the dependencies of our project, we need to add 3, namely:

    Spring Web
  • Spring Data JPA
  • MySQL Driver
In the end it will look like this:

Como iniciar um aplicativo Spring Boot + JPA + MySQL

After configuration, just press the

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
Copy after login
e This occurs because Spring Boot cannot automatically configure a DataSource for the application. Shall we configure?

In the project there will be a directory called resources, within this directory there are some files, among them a file called application.properties which is where the settings of a spring boot project are located. I like to use its YAML/YML version, so just delete this file and create another one called application.yml, looking like this:

Como iniciar um aplicativo Spring Boot + JPA + MySQL

Let's define the

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
Copy after login
e
No application.properties would look like this:

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
Copy after login
e
Okay, now just run the project again and you will see output like this.

Como iniciar um aplicativo Spring Boot + JPA + MySQLEntity Creation

In my database I have a simple table called users in which there are 2 fields:

id: primary key integer auto increment
  • user: varchar(255)

Como iniciar um aplicativo Spring Boot + JPA + MySQLWith 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 }
Copy after login
  • @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 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 { }
Copy after login

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()); } }
Copy after login

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.

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!

source:dev.to
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!