Azure PostgreSQL で Spring Data JPA を使用する方法How to use Spring Data JPA with Azure PostgreSQL

概要Overview

この記事では、Spring Data を使用して、Java Persistence API (JPA) を使って Azure Database for PostgreSQL データベース内の情報を格納および取得するサンプル アプリケーションを作成する方法を説明します。This article demonstrates creating a sample application that uses Spring Data to store and retrieve information in an Azure Database for PostgreSQL database using Java Persistence API (JPA).

前提条件Prerequisites

この記事の手順を実行するには、次の前提条件を満たす必要があります。The following prerequisites are required in order to complete the steps in this article:

  • Azure サブスクリプション。Azure サブスクリプションをまだお持ちでない場合は、MSDN サブスクライバーの特典を有効にするか、または無料の Azure アカウントにサインアップできます。An Azure subscription; if you don't already have an Azure subscription, you can activate your MSDN subscriber benefits or sign up for a free Azure account.
  • サポートされている Java Development Kit (JDK)。A supported Java Development Kit (JDK). Azure での開発時に使用可能な JDK の詳細については、https://aka.ms/azure-jdks を参照してください。For more information about the JDKs available for use when developing on Azure, see https://aka.ms/azure-jdks.
  • Apache Maven バージョン 3.0 以降。Apache Maven, version 3.0 or later.
  • Curl または機能をテストするための類似の HTTP ユーティリティ。Curl or similar HTTP utility to test functionality. または機能をテストするための類似の HTTP ユーティリティ。or similar HTTP utility to test functionality.
  • psql コマンドライン ユーティリティ。The psql command-line utility.
  • Git クライアント。A Git client.

Azure 用に PostgreSQL データベースを作成するCreate a PostgreSQL database for Azure

Azure portal を使用して PostgreSQL データベース サーバーを作成するCreate a PostgreSQL database server using the Azure portal

注意

PostgreSQL データベースの作成に関する詳細については、Azure Portal を使用した Azure Database for PostgreSQL サーバーの作成に関するページを参照してください。You can read more detailed information about creating PostgreSQL databases in Create an Azure Database for PostgreSQL server by using the Azure portal.

  1. Azure portal (https://portal.azure.com/) を参照し、サインインします。Browse to the Azure portal at https://portal.azure.com/ and sign in.

  2. [+ リソースの作成] をクリックし、 [データベース][Azure Database for PostgreSQL] の順にクリックします。Click +Create a resource, then Databases, and then click Azure Database for PostgreSQL.

    PostgreSQL データベースを作成する

  3. 次の情報を入力します。Enter the following information:

    • サーバー名: PostgreSQL サーバー用に一意の名前を選択します。この名前は、wingtiptoyspostgresql.postgres.database.azure.com のような完全修飾ドメイン名の作成に使用されます。Server name: Choose a unique name for your PostgreSQL server; this will be used to create a fully-qualified domain name like wingtiptoyspostgresql.postgres.database.azure.com.
    • サブスクリプション:使用する Azure サブスクリプションを指定します。Subscription: Specify your Azure subscription to use.
    • [リソース グループ] :新しいリソース グループを作成するのか、既存のリソース グループを選択するのかを指定します。Resource group: Specify whether to create a new resource group, or choose an existing resource group.
    • ソースの選択:このチュートリアルでは、Blank を選択して新しいデータベースを作成します。Select source: For this tutorial, select Blank to create a new database.
    • サーバー管理者ログイン:データベース管理者名を指定します。Server admin login: Specify the database administrator name.
    • [パスワード][パスワードの確認] :データベース管理者のパスワードを指定します。Password and Confirm password: Specify the password for your database administrator.
    • [場所] :データベースに最も近い地理的リージョンを指定します。Location: Specify the closest geographic region for your database.
    • バージョン:最新のデータベース バージョンを指定します。Version: Specify the most-up-to-date database version.
    • 価格レベル:このチュートリアルでは、最も安い価格レベルを指定します。Pricing tier: For this tutorial, specify the least-expensive pricing tier.

    PostgreSQL データベースのプロパティを作成する

  4. 上記の情報をすべて入力したら、 [作成] をクリックします。When you have entered all of the above information, click Create.

Azure portal を使用して PostgreSQL データベース サーバーのファイアウォール規則を構成するConfigure a firewall rule for your PostgreSQL database server using the Azure portal

  1. Azure portal (https://portal.azure.com/) を参照し、サインインします。Browse to the Azure portal at https://portal.azure.com/ and sign in.

  2. [すべてのリソース] をクリックし、先ほど作成した PostgreSQL データベースをクリックします。Click All Resources, then click the PostgreSQL database you just created.

    PostgreSQL データベースを選択する

  3. [接続のセキュリティ] をクリックし、 [ファイアウォール規則] で、規則の一意の名前を指定して新しい規則を作成し、データベースへのアクセス権を必要とする IP アドレスの範囲を入力して、 [保存] をクリックします。Click Connection security, and in the Firewall rules, create a new rule by specifying a unique name for the rule, then enter the range of IP addresses that will need access to your database, and then click Save.

    接続のセキュリティを構成する

Azure portal を使用して PostgreSQL サーバーの接続文字列を取得するRetrieve the connection string for your PostgreSQL server using the Azure portal

  1. Azure portal (https://portal.azure.com/) を参照し、サインインします。Browse to the Azure portal at https://portal.azure.com/ and sign in.

  2. [すべてのリソース] をクリックし、先ほど作成した PostgreSQL データベースをクリックします。Click All Resources, then click the PostgreSQL database you just created.

    PostgreSQL データベースを選択する

  3. [接続文字列] をクリックし、 [JDBC] テキスト フィールド内の値をコピーします。Click Connection strings, and copy the value in the JDBC text field.

    JDBC 接続文字列を取得する

psql コマンド ライン ユーティリティを使用して PostgreSQL データベースを作成するCreate PostgreSQL database using the psql command-line utility

  1. コマンド シェルを開き、次の例のように psql コマンドを入力して PostgreSQL サーバーに接続します。Open a command shell and connect to your PostgreSQL server by entering a psql command like the following example:

    psql --host=wingtiptoyspostgresql.postgres.database.azure.com --port=5432 --username=wingtiptoysuser@wingtiptoyspostgresql --dbname=postgres
    

    各値の説明:Where:

    パラメーターParameter 説明Description
    host この記事の前半の完全修飾 PostgreSQL サーバー名を指定します。Specifies your fully qualified PostgreSQL server name from earlier in this article.
    host PostgreSQL サーバー ポートを指定します。既定では 5432 です。Specifies the PostgreSQL server port, which is 5432 by default.
    username この記事の前半の PostgreSQL 管理者と短縮サーバー名を指定します。Specifies your PostgreSQL administrator and shortened server name from earlier in this article.
    dbname 差し当たり既定の postgres データベースを使用することを指定します。Specifies that you want to use the default postgres database for now.

    PostgreSQL サーバーは、次の例のような表示で応答します。Your PostgreSQL server should respond with a display like the following example:

    psql (9.3.24, server 10.5)
    SSL connection (cipher: ECDHE-RSA-AES256-SHA384, bits: 256)
    Type "help" for help.
    
    postgres=>
    
  2. 次の例のように psql コマンドを入力して、mypgsqldb という名前のデータベースを作成します。Create a database named mypgsqldb by entering a psql command like the following example:

    CREATE DATABASE mypgsqldb;
    

    PostgreSQL サーバーは、次の例のような表示で応答します。Your PostgreSQL server should respond with a display like the following example:

    CREATE DATABASE
    
  3. 省略可能:データベースが作成されたことは、psql\l を入力して確認できます。PostgreSQL サーバーは次の例のように応答します。OPTIONAL: You can verify that your database was created by entering a \l at the psql; your PostgreSQL server should respond with something like the following example:

                    List of databases
           Name        |      Owner      | Encoding
    -------------------+-----------------+----------
     azure_maintenance | azure_superuser | UTF8
     azure_sys         | azure_superuser | UTF8
     mypgsqldb         | wingtiptoysuser | UTF8
     postgres          | azure_superuser | UTF8
     template0         | azure_superuser | UTF8
     template1         | azure_superuser | UTF8
    (6 rows)
    
  4. \q を入力して psql ユーティリティを終了します。Enter \q to exit the psql utility.

サンプル アプリケーションを構成するConfigure the sample application

  1. コマンド シェルを開き、次の例のように git コマンドを使用してサンプル プロジェクトを複製します。Open a command shell and clone the sample project using a git command like the following example:

    git clone https://github.com/Azure-Samples/spring-data-jpa-on-azure.git
    
  2. サンプル プロジェクトの resources ディレクトリ内で application.properties ファイルを探すか、まだ存在しない場合はファイルを作成します。Locate the application.properties file in the resources directory of the sample project, or create the file if it does not already exist.

  3. テキスト エディターで application.properties ファイルを開き、このファイルに次の行を追加するか構成して、サンプルの値を前半の該当する値に置き換えます。Open the application.properties file in a text editor, and add or configure the following lines in the file, and replace the sample values with the appropriate values from earlier:

    spring.datasource.url=jdbc:postgresql://wingtiptoyspostgresql.postgres.database.azure.com:5432/mypgsqldb?ssl=true&sslmode=prefer
    spring.datasource.username=wingtiptoysuser@wingtiptoyspostgresql
    spring.datasource.password=********
    

    各値の説明:Where:

    パラメーターParameter 説明Description
    spring.datasource.url この記事の前半の PostgreSQL JDBC 文字列を指定します。Specifies your PostgreSQL JDBC string from earlier in this article.
    spring.datasource.username この記事の前半の PostgreSQL 管理者名を指定し、その後に短縮サーバー名を追加します。Specifies your PostgreSQL administrator name from earlier in this article, with the shortened server name appended to it.
    spring.datasource.password この記事の前半の PostgreSQL 管理者パスワードを指定します。Specifies your PostgreSQL administrator password from earlier in this article.
  4. application.properties ファイルを保存して閉じます。Save and close the application.properties file.

サンプル アプリケーションをパッケージ化してテストするPackage and test the sample application

  1. サンプル アプリケーションを Maven でビルドします。次に例を示します。Build the sample application with Maven; for example:

    mvn clean package -P postgresql
    
  2. サンプル アプリケーションを開始します。次に例を示します。Start the sample application; for example:

    java -jar target/spring-data-jdbc-on-azure-0.1.0-SNAPSHOT.jar
    
  3. 次の例のように、コマンド プロンプトから curl を使用して新しいレコードを作成します。Create new records using curl from a command prompt like the following examples:

    curl -s -d '{"name":"dog","species":"canine"}' -H "Content-Type: application/json" -X POST http://localhost:8080/pets
    
    curl -s -d '{"name":"cat","species":"feline"}' -H "Content-Type: application/json" -X POST http://localhost:8080/pets
    

    アプリケーションから次のような値が返されます。Your application should return values like the following:

    Added Pet(id=1, name=dog, species=canine).
    
    Added Pet(id=2, name=cat, species=feline).
    
  4. 次の例のように、コマンド プロンプトから curl を使用して既存のすべてのレコードを取得します。Retrieve all of the existing records using curl from a command prompt like the following examples:

    curl -s http://localhost:8080/pets
    

    アプリケーションから次のような値が返されます。Your application should return values like the following:

    [{"id":1,"name":"dog","species":"canine"},{"id":2,"name":"cat","species":"feline"}]
    

まとめSummary

このチュートリアルでは、Spring Data を使用して、JPA を使って Azure PostgreSQL データベース 内の情報を格納および取得する Java のサンプル アプリケーションを作成しました。In this tutorial, you created a sample Java application that uses Spring Data to store and retrieve information in an Azure PostgreSQL database using JPA.

次の手順Next steps

Spring および Azure の詳細については、Azure ドキュメント センターで引き続き Spring に関するドキュメントをご確認ください。To learn more about Spring and Azure, continue to the Spring on Azure documentation center.

その他のリソースAdditional Resources

Java での Azure の使用の詳細については、「Java 開発者向けの Azure」および「Azure DevOps と Java の操作」を参照してください。For more information about using Azure with Java, see the Azure for Java Developers and the Working with Azure DevOps and Java.