アプリケーションからのデータベースの接続

logo cloud IDE Cloud IDE

logo desktop IDE Desktop IDE

これは進行中のベータリリースです。ベータ状態での Anypoint Code Builder の使用には、該当するベータサービス契約条件が適用されます。

データベース用 Anypoint Connector (Database Connector) を使用して、Mule フローから外部データベースに接続します。

始める前に

American Flights アプリケーションを開く

  1. Anypoint Code Builder で ​american-ws-anypoint-code-builder.xml​ を開きます。

  2. 設定 XML から ​<set-payload>​ コンポーネントを削除します。

    <set-payload value="Flight info" doc:name="Set Response" />

データベースドライバー連動関係を追加する

Database Connector ではさまざまな Java Database Connectivity (JDBC) データベースがサポートされます。

mySQL​ ドライバーの連動関係を指定します。

  1. Cmd+Shift+e (Mac) または Ctrl+Shift+e (Windows) を押して、​[Explorer]​ メニューを開きます。

  2. pom.xml​ ファイルを開きます。

  3. <dependencies/>​ 要素内で新しい連動関係を追加します。

    <dependency>
       <groupId>mysql</groupId>
       <artifactId>mysql-connector-java</artifactId>
       <version>8.0.29</version>
    </dependency>
    新しい連動関係が強調表示されている pom.xml
  4. ポップアップに「​A build file was modified. Do you want to synchronize the Java classpath/configuration? (ビルドファイルが変更されました。Java クラスパス/設定を同期しますか?)​」というメッセージが表示されたら、​[Yes (はい)]​ を選択します。

  5. pom.xml​ で、​mule-maven-plugin​ 内の既存の ​<configuration/>​ 要素を新しい共有ライブラリに置き換えます。

    <plugin>
        <groupId>org.mule.tools.maven</groupId>
        <artifactId>mule-maven-plugin</artifactId>
        <version>${mule.maven.plugin.version}</version>
        <extensions>true</extensions>
        <configuration>
         <sharedLibraries>
           <sharedLibrary>
             <groupId>mysql</groupId>
             <artifactId>mysql-connector-java</artifactId>
           </sharedLibrary>
         </sharedLibraries>
        </configuration>
    </plugin>
  6. 要求された場合、​[Yes (はい)]​ を受け入れて Java クラスパスを同期します。

  7. Database Connector 設定を追加​に進みます。

Database Connector 設定を追加

  1. Anypoint Code Builder で ​american-ws-anypoint-code-builder.xml​ を開きます。

  2. 設定 XML でグローバル ​<db:config/>​ スニペットを追加します。

    1. <flow/>​ 要素の上にスニペット XML を挿入します。これを行うには、Ctrl+Spacebar (Mac) または Cmd+Spacebar (Windows) を押し、​「mysql」​と入力してスニペットを検索し、スニペット ​[db:mysql-config]​ を選択します。

      <flow/> 要素の上のスニペット XML:
      <db:config name="Mysql_Database_Config" >
        <db:my-sql-connection host="${mysql.host}" port="${mysql.port}"
            user="${mysql.username}" password="${mysql.password}"
            database="${mysql.database}" />
      </db:config>
      
      <flow name="getFlights" >
      ...
    2. 次の XML 設定を生成するように ​<db:config/>​ 内の属性を編集します。

      <db:config name="Database_Config" doc:name="mySQL DB">
          <db:my-sql-connection
            host="mudb.learn.mulesoft.com"
            port="3306"
            user="mule"
            password="mule"
            database="training" />
      </db:config>
  3. 完成した設定 XML を確認します。

    <http:listener-config name="inbound-request" doc:name="HTTP Config">
        <http:listener-connection host="0.0.0.0" port="8081" />
    </http:listener-config>
    
    <db:config name="Database_Config" doc:name="mySQL DB">
        <db:my-sql-connection host="mudb.learn.mulesoft.com" port="3306"
            user="mule" password="mule" database="training" />
    </db:config>
    
    <flow name="getFlights">
        <http:listener path="flights" config-ref="inbound-request"
              doc:name="HTTP /flights" />
    </flow>
  4. すべてのフライトを返すクエリを記述する​に進みます。

すべてのフライトを返すクエリを記述する

  1. キャンバス UI で HTTP Listener コンポーネントの下で ​​ (​[Add component (コンポーネントを追加)]​) アイコンをクリックします。

  2. データベース用 Anypoint Connector (Database Connector) の ​Select​ 操作を追加します。

    Select​ を検索するか、​[Connectors (コネクタ)]​ > ​[Database (データベース)]​ > ​[Select]​ から操作に移動します。

  3. スニペットで次の設定を指定します。

    <db:select doc:name="Query Flights" config-ref="Database_Config" >
      <db:sql>
        <![CDATA[Select * FROM american]]>
      </db:sql>
    </db:select>

    config-ref​ 属性では ​<db:config/>​ のデータベース接続設定をその​名前​で参照します。

  4. 完成した設定 XML を確認します。

    <http:listener-config name="inbound-request" doc:name="HTTP Config">
        <http:listener-connection host="0.0.0.0" port="8081" />
    </http:listener-config>
    
    <db:config name="Database_Config" doc:name="mySQL DB">
        <db:my-sql-connection host="mudb.learn.mulesoft.com" port="3306"
            user="mule" password="mule" database="training" />
    </db:config>
    
    <flow name="getFlights">
        <http:listener path="flights" config-ref="inbound-request" doc:name="HTTP /flights" />
        <db:select doc:name="Query Flights" config-ref="Database_Config" doc:id="qcnfxf" >
            <db:sql>
                <![CDATA[Select * FROM american]]>
            </db:sql>
        </db:select>
    </flow>
  5. DataWeave を使用したフライトデータの変換に進み、DataWeave を使用して American Flight API 仕様でデータベース応答の一致の例を作成する方法を確認します。