データベース用 Anypoint Connector (Database Connector) を使用して、Mule フローから外部データベースに接続します。
始める前に
American Flights プロセスの統合を完了します。
American Flights アプリケーションを開く
-
Anypoint Code Builder で
american-ws-anypoint-code-builder.xml を開きます。 -
設定 XML から
<set-payload> コンポーネントを削除します。<set-payload value="Flight info" doc:name="Set Response" />
データベースドライバー連動関係を追加する
Database Connector ではさまざまな Java Database Connectivity (JDBC) データベースがサポートされます。
mySQL ドライバーの連動関係を指定します。
-
Cmd+Shift+e (Mac) または Ctrl+Shift+e (Windows) を押して、[Explorer] メニューを開きます。
-
pom.xml ファイルを開きます。 -
<dependencies/> 要素内で新しい連動関係を追加します。<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.29</version> </dependency>
-
ポップアップに「
A build file was modified. Do you want to synchronize the Java classpath/configuration? (ビルドファイルが変更されました。Java クラスパス/設定を同期しますか?)」というメッセージが表示されたら、[Yes (はい)] を選択します。 -
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> -
要求された場合、[Yes (はい)] を受け入れて Java クラスパスを同期します。
-
Database Connector 設定を追加に進みます。
Database Connector 設定を追加
-
Anypoint Code Builder で
american-ws-anypoint-code-builder.xml を開きます。 -
設定 XML でグローバル
<db:config/> スニペットを追加します。-
<flow> 開始タグの前にカーソルを置きます。
-
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" > ... -
次の 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>
-
-
完成した設定 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>getFlights フローには、予期されるエラー「The content of element 'flow' is not complete. (要素「flow」のコンテンツが不完全です。)」が含まれています。このエラーは、この手順の後半でコネクタを追加するまで存在します。 -
すべてのフライトを返すクエリを記述するに進みます。
すべてのフライトを返すクエリを記述する
-
キャンバスで HTTP Listener コンポーネントの後の
([Add component (コンポーネントを追加)]) アイコンをクリックします。 -
データベース用 Anypoint Connector (Database Connector) の Select 操作を追加します。
Select を検索するか、[Connectors (コネクタ)] > [Database (データベース)] > [Select] から操作に移動します。
-
スニペットで次の設定を指定します。
-
キャンバスから
-
設定 XML から
[Select] 操作をクリックして、その設定パネルを開き、Select の属性を次の値に設定します。
1 コネクタ名を [Query Flights (フライトを照会)] に変更します。2 コネクタ設定ドロップダウンメニューから [Database_Config] を選択します。3 [Query (クエリ)] 属性を [Select * FROM american] に設定します。<db:select/> で、属性を例で指定された値に設定します。<db:select doc:name="Query Flights" config-ref="Database_Config" > <db:sql> <![CDATA[Select * FROM american]]> </db:sql> </db:select>config-ref 属性では <db:config/> のデータベース接続設定をその名前で参照します。 -
-
完成した設定 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> -
DataWeave を使用したフライトデータの変換に進み、DataWeave を使用して American Flight API 仕様でデータベース応答の一致の例を作成する方法を確認します。