行の取得
Catalyst Data Storeのテーブルから単一行または複数行のデータを取得できます。以下のサンプルコードに示すように、テーブルの一意のテーブルIDをgetTable()メソッドに渡すことで行を取得できます。
単一行の取得
getRow()メソッドを使用して、テーブルから単一行のデータを取得できます。以下に示すように、取得したい行の一意のRow IDをこのメソッドに渡す必要があります。
まずgetInstance()を使用してベースオブジェクトインスタンスを取得する必要があります。ベースオブジェクトインスタンスを使用して、行の取得に使用するテーブルインスタンスを取得する必要があります。
サンプルコードスニペット
import com.zc.component.object.ZCObject;
import com.zc.component.object.ZCRowObject;
import com.zc.component.object.ZCTable;
//ベースオブジェクトインスタンスZCObjectを作成する
ZCObject obj = ZCObject.getInstance();
//ベースオブジェクトを使用してテーブルIDを参照してテーブルインスタンスを取得する
ZCTable tab = obj.getTable(1510000000110121L);
//Row IDを渡してテーブルから単一行を取得する
ZCRowObject row = tab.getRow(1510000000108103L);
ページネーションによるすべての行の取得
ZCRowPagedResponseクラスを使用してコードにページネーションを組み込むことで、Data Storeのテーブルからすべての行を取得できます。ページネーションにより、テーブルの行をバッチまたはページ単位でイテレーションを通じて取得できます。
たとえば、個別のページとして100行ずつバッチで行を取得する場合、各ページで取得する最大行数の変数を定義し、数を指定できます。以下のサンプルコードではmaxRowsを100に設定しています。
さらに、ループの各実行後に、後続のデータ取得を認可するトークン文字列がレスポンスに含まれます。getNextToken()メソッドを通じてこのトークンを取得し、以下のコードに示すように、後続のイテレーションでnextTokenの値として渡します。ループの最初の実行時、nextToken文字列の値はnullとして割り当てられます。
このイテレーションは、moreRecordsAvailable()メソッドで検証される、すべての行が取得されるまで実行されます。
サンプルコードに示すように、テーブル名と取得するカラム名を指定できます。
サンプルコードスニペット
import com.zc.component.object.ZCObject;
import com.zc.component.object.ZCRowObject;
import com.zc.component.object.ZCRowPagedResponse;
String nextToken = null;
//最初のnextTokenの値をnullとして宣言する
iteration ZCRowPagedResponse pagedResp;
//ページングされたレスポンスオブジェクトを定義する
Long maxRows = 100;
//1ページで取得する最大行数を定義する
do
{
pagedResp = ZCObject.getInstance().getTable(empDetails).getPagedRows(nextToken,
maxRows);
//テーブル名を指定し、nextTokenとmaxRowsを渡してページングされたレスポンスを取得する
//列名を渡してテーブルから列を取得する
for(ZCRowObject row : pagedResp.getRows())
{
basicIO.write("Employee ID: " +row.get("empID") + ",");
basicIO.write("Name: " +row.get("empName") + ",");
basicIO.write("Department: " +row.get("empDept") + ","); }
//反復を検証し、レスポンスで取得したトークン文字列を次の反復に渡す
if(pagedResp.moreRecordsAvailable())
{
nextToken = pagedResp.getNextToken();
}
}
while(pagedResp.moreRecordsAvailable());
最終更新日 2026-03-30 13:40:30 +0530 IST
Yes
No
Send your feedback to us