Rumah> Java> javaTutorial> teks badan

Bagaimana untuk memulakan aplikasi Spring Boot + JPA + MySQL

王林
Lepaskan: 2024-08-21 22:31:21
asal
457 orang telah melayarinya

Antes de irmos para a criação do projeto, estarei explicando de forma breve o que são as tecnologiasSpring Boot,JPAeMySQL.

  • Spring Boot: é um framework Java utilizado para simplificar o desenvolvimento de aplicações Spring, permitindo criar aplicações standalone, que podem ser executados com um simples comando, sem a necessidade de configuração complexa.
  • JPA: Java Persistence API é uma especificação do Java que define como os objetos Java devem ser mapeados para banco de dados relacionais(ORM).
  • MySQL: sistema de gerenciamento de Banco de Dados relacional (RDBMS) de código aberto mundialmente famoso. Ele é amplamente utilizado para armazenar, organizar e gerenciar grandes volumes de dados em aplicações web e empresariais.

Com essas 3 tecnologias, podemos desenvolver aplicações web robustas, escaláveis e de alto desempenho.

Criação do Projeto

Estaremos criando o projeto em uma ferramenta online chamada:Spring Initializrque facilita a criação de projetos Spring Boot.

Quando você entrar na URL, verá uma tela dessa forma:

Como iniciar um aplicativo Spring Boot + JPA + MySQL

Estaremos configurando do lado esquerdo algumas coisas, como:

  • Tipo do Projeto:Maven
  • Língua:Java
  • Versão do Spring Boot:3.3.2

No Project Metadata você irá por:

  • Group:br.com.(ex: br.com.josemarinho)
  • Artifact e Name:spring-jpa-mysql
  • Description:Projeto utilizando Spring Boot, JPA e MySQL
  • Package name:gerado automaticamente com base no Group e Artifact.
  • Packaging:Jar
  • Java:17

Ao lado direito terá as dependências do nosso projeto, precisamos adicionar 3, sendo elas:

  • Spring Web
  • Spring Data JPA
  • MySQL Driver

No final ficará assim:

Como iniciar um aplicativo Spring Boot + JPA + MySQL

Após a configuração é só apertar no botãoGenerate, onde irá começar o download de um Zip contendo todos os diretórios/arquivos do projeto. Logo após é só descomprimir e abrir na sua IDE de preferência.

Primeira execução

Assim que você abrir o projeto e tentar executar o programa, irá acusar um erro em tempo de execução dizendo o seguinte:

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
Salin selepas log masuk

Isso ocorre porque o Spring Boot não consegue configurar automaticamente um DataSource para a aplicação. Vamos configurar?

No projeto terá um diretório chamado resources, dentro desse diretório tem alguns arquivos, dentre eles um arquivo chamado application.properties que é onde fica as configurações de um projeto spring boot. Eu gosto de utilizar sua versão em YAML/YML, para isso é só deletar esse arquivo e criar outro chamado application.yml, ficando dessa forma:

Como iniciar um aplicativo Spring Boot + JPA + MySQL

Vamos definir aurlem que nosso app irá conectar,driver,usernameepassword:

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
Salin selepas log masuk

No application.properties ficaria da seguinte forma:

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
Salin selepas log masuk

Pronto, agorá é só executar novamente o projeto e você verá uma saída como essa.

Como iniciar um aplicativo Spring Boot + JPA + MySQL

Criação de Entidades

Em meu banco de dados tenho uma tabela simples chamada usuarios no qual existem 2 campos:

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

Como iniciar um aplicativo Spring Boot + JPA + MySQL

Com ela, iremos dar o primeiro passo para mapear essa tabela em um contexto java, criando uma Entidade. Para isso crie uma classe chamada Usuario, no final ela deverá ficar assim:

@Entity @Table(name = "usuarios") public class Usuario { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; private String usuario; // Getters e Setters }
Salin selepas log masuk
  • @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 { }
Salin selepas log masuk

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()); } }
Salin selepas log masuk

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.

Atas ialah kandungan terperinci Bagaimana untuk memulakan aplikasi Spring Boot + JPA + MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!