ホームページ >Java >&#&チュートリアル >Spring Boot + JPA + MySQL アプリケーションを起動する方法

Spring Boot + JPA + MySQL アプリケーションを起動する方法

王林
王林オリジナル
2024-08-21 22:31:21706ブラウズ

プロジェクトを作成する前に、Spring BootJPA、および MySQL.

がどのようなテクノロジーなのか簡単に説明します。
  • Spring Boot: Spring アプリケーションの開発を簡素化するために使用される Java フレームワークで、複雑な構成を必要とせずに単純なコマンドで実行できるスタンドアロン アプリケーションの作成を可能にします。
  • JPA: Java Persistence API は、Java オブジェクトをリレーショナル データベース (ORM) にマッピングする方法を定義する Java 仕様です。
  • MySQL: 世界的に有名なオープンソースのリレーショナル データベース管理システム (RDBMS)。 Web アプリケーションやエンタープライズ アプリケーションで大量のデータを保存、整理、管理するために広く使用されています。

これら 3 つのテクノロジーを使用すると、堅牢でスケーラブルな高性能の Web アプリケーションを開発できます。

プロジェクトの作成

Spring Boot プロジェクトの作成を容易にする Spring Initializr というオンライン ツールでプロジェクトを作成します。

URLを入力すると、次のような画面が表示されます:

Como iniciar um aplicativo Spring Boot + JPA + MySQL

左側で次のような設定を行います。

  • プロジェクトの種類: Maven
  • 言語: Java
  • スプリングブートバージョン: 3.3.2

プロジェクト メタデータでは、次のようになります:

  • グループ: br.com.(例: br.com.josemarinho)
  • アーティファクトと名前: spring-jpa-mysql
  • 説明: Spring Boot、JPA、MySQL を使用したプロジェクト
  • パッケージ名: グループとアーティファクトに基づいて自動的に生成されます。
  • 包装:
  • ジャワ: 17

右側にはプロジェクトの依存関係があり、次の 3 つを追加する必要があります。

  • スプリングウェブ
  • Spring Data 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 というディレクトリがあり、このディレクトリ内にいくつかのファイルがあり、その中には、Spring Boot プロジェクトの設定が配置されている 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 という 2 つのフィールドがある単純なテーブルがあります。

  • 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。