Database Connector のデータ型の設定の例 - Mule 4

次の例は、クエリの各入力パラメーターの型を指定する ​[Parameters types (パラメーターの型)]​ 項目と、特定のデータベースプロバイダーに接続されたときにカスタムデータ型を設定する ​[Column types (列の型)]​ 項目を使用して、データベース用 Anypoint Connector (Database Connector) のデータ型を設定する方法を示しています。

Studio で [Parameter Types (パラメーターの型)] 項目を設定する

JDBC ドライバーで入力のデータ型を特定できない場合や、パラメーターがカスタムデータ型の場合、​[Parameter types (パラメーターの型)]​ 項目を設定して、各入力パラメーターの型を指定します。次の例は、​Bulk insert​ 操作の ​[Parameter types (パラメーターの型)]​ 項目を設定する方法を示しています。

  1. Studio のフローで、​[Bulk insert]​ 操作を選択します。

  2. 操作の設定画面の ​[General (一般)]​ タブで、​[Connector configuration (コネクタ設定)]​ 項目の横にあるプラス記号 (​+​) をクリックし、グローバル要素設定項目にアクセスします。

  3. データベース接続情報を指定し、​[OK]​ をクリックします。

  4. 実行する SQL クエリを ​[SQL Query Text (SQL クエリテキスト)]​ 項目に設定します (例: INSERT INTO PLANET(POSITION, NAME) VALUES (:position, :name)​)。

  5. 操作設定画面で、​[Advanced (詳細)]​ タブをクリックします。

  6. [Parameter types (パラメーターの型)]​ 項目を [​Edit inline​ (インライン編集)] に設定します。

  7. 緑のプラス記号 (​+​) をクリックして、新しいパラメーターの型を作成します。

  8. [parameter type (パラメーターの型)] ウィンドウで、​[Key (キー)]​ 項目を ​name​、​[Type (型)]​ 項目を ​VARCHAR​ に設定します。

  9. [Finish (完了)]​ をクリックします。

  10. ステップ 7 を繰り返します。

  11. [parameter type (パラメーターの型)] ウィンドウで、​[Key (キー)]​ 項目を ​position​、​[Type (型)]​ 項目を ​INTEGER​ に設定します。

  12. [Finish (完了)]​ をクリックします。

次のスクリーンショットは、Studio の設定を示しています。

「Parameter types (パラメーターの型)」 項目を 「Edit Inline (インライン編集)」 に設定し、プラス記号をクリックして新しいパラメーターを作成します。
Figure 1. [Parameter Types (パラメーターの型)] 項目の設定

XML エディターでは、​<db:parameter-types>​ 設定は次のように記述されます。

<db:bulk-insert queryTimeout="0" queryTimeoutUnit="SECONDS">
     <db:sql>INSERT INTO PLANET(POSITION, NAME) VALUES (:position, :name)</db:sql>
     <db:parameter-types>
         <db:parameter-type key="name" type="VARCHAR" />
         <db:parameter-type key="position" type="INTEGER" />
     </db:parameter-types>
 </db:bulk-insert>

Studio で [Column Types (列の型)] 項目を設定する

各接続プロバイダーは、専用パラメーターと共通パラメーターを使用します (Derby や Oracle など)。接続プロバイダー要素の子要素で、特定のプロバイダーに接続している場合に使用できるカスタムデータ型のパラメーターを定義します。

次の表には、カスタムメタデータ型を定義するために使用できる JDBC データ型のコードと ID が記載されています。

JDBC データ型のコード id

ARRAY

2003

BIGINT

-5

BINARY

-2

BIT

-7

BLOB

2004

BOOLEAN

16

CHAR

1

CLOB

2005

DATALINK

70

DATE

91

DECIMAL

3

DISTINCT

2001

DOUBLE

8

FLOAT

6

INTEGER

4

JAVA_OBJECT

2000

LONGNVARCHAR

-16

LONGVARBINARY

-4

LONGVARCHAR

-1

NCHAR

-15

NCLOB

2011

NULL

0

NUMERIC

2

NVARCHAR

-9

OTHER

1111

REAL

7

REF

2006

REF_CURSOR

2012

ROWID

-8

SMALLINT

5

SQLXML

2009

STRUCT

2002

TIME

92

TIME_WITH_TIMEZONE

2013

TIMESTAMP

93

TIMESTAMP_WITH_TIMEZONE

2014

TINYINT

-6

VARBINARY

-3

VARCHAR

12

次の例は、Derby グローバル設定接続要素の ​[Column types (列の型)]​ 項目を設定する方法を示しています。

  1. Studio で、​[Global Elements (グローバル要素)]​ タブに移動します。

  2. [Create (作成)]​ をクリックします。

  3. [Global Type (グローバル種別)]​ ウィンドウで、「​database​」と入力して絞り込みます。

  4. [Database Config (データベース設定)]​ を選択して ​[OK]​ をクリックします。

  5. [Connection (接続)]​ 項目を [​Derby Connection​ (Derby 接続)] に設定します。

  6. Derby JDBC ドライバーの必須ライブラリと追加の接続項目を設定します。

  7. [Advanced (詳細)]​ タブをクリックします。

  8. [Column types (列の型)]​ 項目を [​Edit inline​ (インライン編集)] に設定します。

  9. 緑のプラス記号 (​+​) をクリックして、カスタム列型を作成します。

  10. [parameter type (パラメーターの型)] ウィンドウで、​[Id (ID)]​ 項目を ​2000​、​[Type (型)]​ 項目を ​CONTACT_DETAILS​ に設定します。

  11. [Finish (完了)]​ をクリックします。

次のスクリーンショットは、Studio の設定を示しています。

「Column types (列の型)」 項目を 「edit inline (インライン編集)」 に設定し、プラス記号をクリックして列の型を作成します。
Figure 2. [Column Types (列の型)] 項目の設定

XML エディターでは、​<db:column-type>​ 設定は次のように記述されます。

<db:config name="dbConfig">
   <db:derby-connection url="jdbc:derby:muleEmbeddedDB;create=true">
       <db:column-types>
           <!-- Derby uses JAVA_OBJECT for UDT-->
           <db:column-type typeName="CONTACT_DETAILS" id="2000"/>
       </db:column-types>
   </db:derby-connection>
</db:config>