Azure MySQL で Spring Data JDBC を使用する方法How to use Spring Data JDBC with Azure MySQL

概要Overview

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

前提条件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.
  • mysql コマンドライン ユーティリティ。The mysql command-line utility.
  • Git クライアント。A Git client.

Azure Database for MySQL の作成Create an Azure Database for MySQL

Azure portal を使用してサーバーを作成するCreate a server using the Azure portal

注意

MySQL データベースの作成に関する詳細については、「Azure portal を使用した Azure Database for MySQL サーバーの作成」を参照してください。You can read more detailed information about creating MySQL databases in Create an Azure Database for MySQL 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 MySQL] の順にクリックします。Click +Create a resource, then Databases, and then click Azure Database for MySQL.

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

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

    • サーバー名: MySQL サーバー用に一意の名前を選択します。この名前は、wingtiptoysmysql.mysql.database.azure.com のような完全修飾ドメイン名の作成に使用されます。Server name: Choose a unique name for your MySQL server; this will be used to create a fully-qualified domain name like wingtiptoysmysql.mysql.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.

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

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

Azure portal を使用してサーバーのファイアウォール規則を構成するConfigure a firewall rule for your 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. [すべてのリソース] をクリックし、先ほど作成した Azure Database for MySQL リソースをクリックします。Click All Resources, then click the Azure Database for MySQL resources you just created.

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

  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 を使用してサーバーの接続文字列を取得するRetrieve the connection string for your 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. [すべてのリソース] をクリックし、先ほど作成した Azure Database for MySQL を選択します。Click All Resources, then select the Azure Database for MySQL you just created.

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

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

    JDBC 接続文字列を取得する

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

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

    mysql --host wingtiptoysmysql.mysql.database.azure.com --user wingtiptoysuser@wingtiptoysmysql -p
    

    各値の説明:Where:

    パラメーターParameter 説明Description
    host この記事の前半の完全修飾 MySQL サーバー名を指定します。Specifies your fully qualified MySQL server name from earlier in this article.
    user この記事の前半の MySQL 管理者と短縮サーバー名を指定します。Specifies your MySQL administrator and shortened server name from earlier in this article.
    p パスワードが要求されるまで待機するように指定します。Specifies to wait until prompted for a password.

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

    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 64552
    Server version: 5.6.39.0 MySQL Community Server (GPL)
    
    Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    mysql>
    
  2. 次の例のように mysql コマンドを入力して、mysqldb という名前のデータベースを作成します。Create a database named mysqldb by entering a mysql command like the following example:

    CREATE DATABASE mysqldb;
    

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

    Query OK, 1 row affected (0.30 sec)
    
  3. 省略可能:次の例のように、mysql コマンドを入力することで、データベースが作成されたことを確認できます。OPTIONAL: You can verify that your database was created by entering a mysql command like the following example:

    SHOW DATABASES;
    

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

    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | mysqldb            |
    | performance_schema |
    | sys                |
    +--------------------+
    
  4. \q を入力して mysql ユーティリティを終了します。Enter \q to exit the mysql 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-jdbc-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:mysql://wingtiptoysmysql.mysql.database.azure.com:3306/mysqldb?useSSL=true&requireSSL=false&serverTimezone=UTC
    spring.datasource.username=wingtiptoysuser@wingtiptoysmysql
    spring.datasource.password=********
    

    各値の説明:Where:

    パラメーターParameter 説明Description
    spring.datasource.url タイム ゾーンを追加して、この記事の前半の MySQL JDBC 文字列を指定します。Specifies your MySQL JDBC string from earlier in this article, with the time zone added.
    spring.datasource.username この記事の前半の MySQL 管理者名を指定し、その後に短縮サーバー名を追加します。Specifies your MySQL administrator name from earlier in this article, with the shortened server name appended to it.
    spring.datasource.password この記事の前半の MySQL 管理者パスワードを指定します。Specifies your MySQL 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 mysql
    
  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 を使用して、JDBC を使って Azure Database for MySQL データベース内の情報を格納および取得する Java のサンプル アプリケーションを作成しました。In this tutorial, you created a sample Java application that uses Spring Data to store and retrieve information in an Azure Database for MySQL database using JDBC.

次の手順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.