本文介绍如何通过 Java SDK 读取表格存储数据表的单行数据。
注意事项
读取数据时需要提供包含自增主键列值在内的完整主键值。
前提条件
方法说明
public GetRowResponse getRow(GetRowRequest getRowRequest) throws TableStoreException, ClientException
示例代码
以下示例代码读取了主键值为 row1 的单行数据。
public static void getRowExample(SyncClient client) {
// 构造主键
PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
primaryKeyBuilder.addPrimaryKeyColumn("id", PrimaryKeyValue.fromString("row1"));
PrimaryKey primaryKey = primaryKeyBuilder.build();
// 构造读取的行数据
SingleRowQueryCriteria singleRowQueryCriteria = new SingleRowQueryCriteria("test_table", primaryKey);
singleRowQueryCriteria.setMaxVersions(1);
// 调用 getRow 方法读取行数据
GetRowRequest getRowRequest = new GetRowRequest(singleRowQueryCriteria);
GetRowResponse getRowResponse = client.getRow(getRowRequest);
// 返回结果处理
System.out.println("RequestId: " + getRowResponse.getRequestId());
System.out.println("Read CU Cost: " + getRowResponse.getConsumedCapacity().getCapacityUnit().getReadCapacityUnit());
System.out.println("Write CU Cost: " + getRowResponse.getConsumedCapacity().getCapacityUnit().getWriteCapacityUnit());
System.out.println("Row Data: \n" + getRowResponse.getRow());
}
设置读取的数据版本范围,结果只返回版本范围内的数据。
// 设置查询的数据版本范围为当前时间往前一天 singleRowQueryCriteria.setTimeRange(new TimeRange(System.currentTimeMillis() - 86400*1000, System.currentTimeMillis()));
指定读取的属性列。
singleRowQueryCriteria.addColumnsToGet("col2");
相关文档
该文章对您有帮助吗?