Spring Boot を MySQL に接続する

王林
リリース: 2024-07-18 11:05:19
オリジナル
1174 人が閲覧しました

皆さんこんにちは、

このチュートリアルでは、フロントエンドの API を作成するために、Spring Boot を MySQL に接続するために行ったプロセスについて説明します。

前提条件:

  • IDE (Intellij IDEA を使用しているため、このチュートリアルはそれに基づいています)

  • MySql ワークベンチ

ソースコードについてはここをクリックしてください。

Spring Initializr を使用して Spring Boot プロジェクトを作成する

start.spring.io にアクセスし、以下を選択します:
プロジェクト: Maven
言語: Java
スプリングブート: 3.3.0
コンテンツを必要なフィールドに記入します
包装: 瓶
ジャワ: 17

依存関係に関しては、以下が必要になります:

  • MySQL ドライバー

  • スプリングウェブ

  • Spring Data JPA

これらの後、initializr は次のようになります:

Image description

[生成] をクリックし、フォルダーを目的のパスに保存し、フォルダーのコンテンツを抽出します。

Intellij と Mysql の構成

まず、MySQL でデータベースを作成します。これには MySQL Workbench を使用しました。

次のように、最も単純なデータベースでも機能します。

Image description

目的の IDE でフォルダーのコンテンツを開きます。このチュートリアルでは、Intellij IDEA を使用して説明します。

scr/resources/application.properties にある application.properties ファイルを開きます

このファイルでは、データベースへの接続に役立つ設定を構成します。

次の設定をファイルに書き込みます:

Image description

${DB_NAME}、${DB_USER}、${DB_PASSWORD} をデータベースの資格情報に置き換えます。

これらの設定は、作成したデータベースに接続するのに役立ちます:

spring.jpa.show-sql=true:

ログイン後にコピー

これにより、Hibernate によって生成された SQL ステートメントのログが有効になります。 true に設定すると、Hibernate は SQL ステートメントをコンソールに出力します。

spring.jpa.hibernate.ddl-auto=update:

ログイン後にコピー

この設定は、エンティティ定義と一致するようにデータベース スキーマを自動的に更新するために使用されます。値の更新は、Hibernate が既存のスキーマを更新し、エンティティ マッピングに必要な新しい列またはテーブルを追加することを意味します。

logging.level.org.hibernate.SQL=DEBUG:

ログイン後にコピー

これにより、Hibernate SQL ロガーのログ レベルが DEBUG に設定されます。実行されている SQL ステートメントに関する詳細情報が提供されます。

logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE:

ログイン後にコピー

これにより、Hibernate タイプ記述子の SQL バインダーのログ レベルが TRACE に設定されます。これにより、SQL ステートメント内のパラメーターのバインドに関する詳細情報がログに記録されます。

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver:

ログイン後にコピー

これは、MySQL の JDBC ドライバーのクラス名を指定します。これは、データベースへの接続を確立するためにどのドライバーを使用するかを Spring Boot に指示します。

spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect:
ログイン後にコピー

これにより、Hibernate ダイアレクトが MySQL 用に最適化された MySQLDialect に設定されます。これにより、Hibernate が MySQL と互換性のある SQL ステートメントを生成できるようになります。

次に、プロジェクトのメイン パッケージ内にサブパッケージを作成し、それを「モデル」と呼びます。内部で、必要に応じてそれを呼び出すクラスを作成します。私の場合は Users と呼びます。

package com.evaluation.evaluationSystem.model;

import jakarta.persistence.*;

@Entity
@Table(name = "users")
public class Users {
    public Long getId() {
        return id;
    }

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private Long id;

    @Column(name = "email")
    private String email;

    @Column(name = "password")
    private String password;

    public void setId(Long id) {
        this.id = id;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}
ログイン後にコピー

このファイルでは、データベース テーブル users にマップされる JPA エンティティ Users を定義します。このクラスには、users テーブルの列に対応する ID、電子メール、およびパスワードのフィールドが含まれているため、フィールドがデータベースの列と一致していることを確認してください。

次に、「controller」という名前の別のサブパッケージを作成し、その中にファイルを作成します。

package com.evaluation.evaluationSystem.controller;

import com.evaluation.evaluationSystem.model.Users;
import com.evaluation.evaluationSystem.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.Optional;

@RestController
public class UsersController {
    @Autowired
    private UserRepository userRepository;

    @GetMapping("/users")
    public List<Users> getUsers(@RequestParam("search") Optional<String> searchParam){
        return searchParam.map(param -> userRepository.getContainingQuote(param))
                .orElse(userRepository.findAll());
    }
}

ログイン後にコピー

このファイルでは、検索パラメーターに基づいてユーザー エンティティをオプションでフィルターできる RESTful API エンドポイント (/users) を定義します。データベースの対話には UserRepository を利用し、@RestController アノテーションにより結果を JSON 形式で返します。 「/users」を任意のエンドポイントに置き換えます。

リポジトリと呼ばれるサブパッケージをもう 1 つ (最後の 1 つ) 作成し、ファイル インターフェイスを作成します (クラスではなく注意してください)。

package com.evaluation.evaluationSystem.repository;

import com.evaluation.evaluationSystem.model.Users;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

import java.util.List;

public interface UserRepository extends JpaRepository<Users, Long> {
    @Query("SELECT u FROM Users u WHERE u.email LIKE %:word%")
    List<Users> getContainingQuote(@Param("word") String word);
}
ログイン後にコピー

このファイルでは、データベースからデータを取得できるようにするクエリを定義します。必要に応じて編集してください。このクエリは JPQL (Java Persistence Query Language) を使用して作成します。これは、Java Persistence API (JPA) 仕様の一部として定義されたクエリ言語であり、Java オブジェクトおよびエンティティに対してデータベース操作を実行するために使用されます。

最後のフォルダー構造は次のようになります:

Image description

次に、メイン ファイル (私の場合は、EvaluationSystemApplication) に移動し、プロジェクトを実行します。すべてがうまく機能する場合は、localhost:8080/users (または選択したエンドポイント) にアクセスすると、データベースのデータが表示されます。データのテーブルには必ず何らかのコンテンツを入力してください。

結論

このチュートリアルがお役に立てば幸いです。私もこの環境では初めてなので、勉強させていただきます。コメントや提案は大歓迎です。

Spring Boot、MySQL、React を使用してフルスタック Web アプリを開発する私の旅の最新情報を入手するには、お気軽に GitHub アカウントをフォローしてください!

以上がSpring Boot を MySQL に接続するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート