このジョブでは、MySQLデータベーステーブルを使って、Talendジョブにドロップダウンリストを作成する方法を示します。
このジョブは、次のコンポーネントを使用します:
- コンテキスト変数で、ドロップダウンリストを準備して、ランタイムにユーザーから選択された値を保管するtJava、
- employeeテーブルから人物情報をクエリーするtMysqlInputコンポーネント、
- コンソールに結果を出力するtLogRowコンポーネント。
手順
- Talend Studioで、DropDownListExampleという名前の新しいジョブを作成します。
- [Contexts] (コンテキスト)タブをクリックし、String型のコンテキスト変数を定義して、nameと名付けます。この変数に、ランタイムにユーザーから選択されたドロップダウンの値が保管されます。
- [Palette] (パレット)から、デザインワークスペースにtJavaコンポーネントとtMysqlInputコンポーネントをドロップします。[Trigger > OnSubjobOk] (トリガー > サブジョブがOKの場合)リンクを使って、tJavaコンポーネントとtMysqlInputコンポーネントを接続させます。
- tLogRowコンポーネントをドロップし、[Row > Main] (行 > メイン)リンクを使って、それをtMysqlInputに接続します。
-
tJavaをダブルクリックし、次の操作を行います:
-
以下のJavaコードを追加して、ドロップダウンリストを準備します:
String[] nameStrings = { "Elisa", "Nicolas", "Cedric", "Rabbit", "Mike","Sabrina","Stephane","Jim","John"}; JFrame frame = new JFrame("Input Dialog Example"); String returnValue = (String) JOptionPane.showInputDialog(frame, "Select the name you want to query?","Employee Information",JOptionPane.QUESTION_MESSAGE,null,nameStrings,nameStrings[0]); context.name=returnValue; //store the value to the context variable
- ランタイムにユーザーから選択された値をコンテキスト変数に保管します。
-
[Advanced settings] (詳細設定)をクリックして、このジョブで使用されるクラスの完全パスをインポートします。
-
以下のJavaコードを追加して、ドロップダウンリストを準備します:
-
tMysqlInputを設定して、employeeテーブルから人物情報をクエリーします:
-
[Query] (クエリー)ボックスで、コンテキスト変数を使って、ランタイムにユーザーから選択された従業員の情報を選択します。
"select * from employee where name='"+context.name+"'"
-
[Edit Schema] (スキーマを編集)ダイアログボックスで、従業員テーブルのデータストラクチャーを定義します。
-
- tLogrowをダブルクリックして、その設定を指定して、Studioコンソールに結果を出力します。
-
ジョブを実行して、求められたらドロップダウンリストから名前を1つ選択します。
-
たとえば、リストからStephaneを選択します。情報がテーブルからクエリーされて、コンソールに出力されます。