>  기사  >  Java  >  Spring Boot + JPA + MySQL 애플리케이션을 시작하는 방법

Spring Boot + JPA + MySQL 애플리케이션을 시작하는 방법

王林
王林원래의
2024-08-21 22:31:21679검색

프로젝트 생성에 앞서 Spring Boot, JPA, MySQL.

기술이 무엇인지 간략히 설명드리겠습니다.
  • Spring Boot: Spring 애플리케이션 개발을 단순화하는 데 사용되는 Java 프레임워크로, 복잡한 구성 없이 간단한 명령으로 실행할 수 있는 독립형 애플리케이션을 생성할 수 있습니다.
  • JPA: Java Persistence API는 Java 객체를 관계형 데이터베이스(ORM)에 매핑하는 방법을 정의하는 Java 사양입니다.
  • MySQL: 세계적으로 유명한 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS). 웹 및 기업 애플리케이션에서 대용량 데이터를 저장, 구성 및 관리하는 데 널리 사용됩니다.

이 세 가지 기술을 사용하면 강력하고 확장 가능한 고성능 웹 애플리케이션을 개발할 수 있습니다.

프로젝트 생성

Spring Boot 프로젝트 생성을 용이하게 하는 Spring Initializr이라는 온라인 도구에서 프로젝트를 생성할 것입니다.

URL을 입력하시면 다음과 같은 화면이 나옵니다.

Como iniciar um aplicativo Spring Boot + JPA + MySQL

왼쪽에서 다음과 같은 몇 가지 항목을 구성합니다.

  • 프로젝트 유형: Maven
  • 언어: 자바
  • 스프링 부트 버전: 3.3.2

프로젝트 메타데이터에서는 다음을 사용합니다.

  • 그룹: br.com.(예: br.com.josemarinho)
  • 아티팩트 및 이름: spring-jpa-mysql
  • 설명: Spring Boot, JPA, MySQL을 사용한 프로젝트
  • 패키지 이름: 그룹 및 아티팩트를 기반으로 자동 생성됩니다.
  • 포장:
  • 자바: 17

오른쪽에는 프로젝트의 종속성이 있습니다. 즉, 3개를 추가해야 합니다.

  • 스프링웹
  • 스프링 데이터 JPA
  • MySQL 드라이버

결국 다음과 같이 됩니다.

Como iniciar um aplicativo Spring Boot + JPA + MySQL

구성 후 생성 버튼을 누르면 모든 프로젝트 디렉토리/파일이 포함된 Zip 다운로드가 시작됩니다. 그런 다음 압축을 풀고 원하는 IDE에서 엽니다.

첫 번째 실행

프로젝트를 열고 프로그램을 실행하려고 하면 다음과 같은 런타임 오류가 보고됩니다.

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

이는 Spring Boot가 애플리케이션에 대한 DataSource를 자동으로 구성할 수 없기 때문에 발생합니다. 구성해볼까요?

프로젝트에는 resources라는 디렉터리가 있으며, 이 디렉터리에는 몇 가지 파일이 있으며 그 중에는 스프링 부트 프로젝트의 설정이 있는 application.properties라는 파일이 있습니다. 저는 YAML/YML 버전을 사용하는 것을 좋아하므로 이 파일을 삭제하고 다음과 같이 application.yml이라는 다른 파일을 생성하세요.

Como iniciar um aplicativo Spring Boot + JPA + MySQL

앱이 연결될 url, 드라이버, 사용자 이름비밀번호를 정의해 보겠습니다.

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

application.properties에서는 다음과 같습니다.

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

자, 이제 프로젝트를 다시 실행하면 다음과 같은 출력을 볼 수 있습니다.

Como iniciar um aplicativo Spring Boot + JPA + MySQL

엔터티 생성

내 데이터베이스에는 두 개의 필드가 있는 users라는 간단한 테이블이 있습니다.

  • id: 기본 키 정수 자동 증가
  • 사용자: varchar(255)

Como iniciar um aplicativo Spring Boot + JPA + MySQL

이를 사용하여 Java 컨텍스트에서 이 테이블을 매핑하고 엔터티를 생성하는 첫 번째 단계를 수행합니다. 이렇게 하려면 User라는 클래스를 생성하세요. 최종적으로는 다음과 같습니다.

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

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

    // Getters e Setters
}
  • @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> { }

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:

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.

위 내용은 Spring Boot + JPA + MySQL 애플리케이션을 시작하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.