写入单行数据

本文介绍如何通过 Java SDK 在表格存储的数据表中写入单行数据。

前提条件

初始化Tablestore Client

方法说明

public PutRowResponse putRow(PutRowRequest putRowRequest) throws TableStoreException, ClientException

PutRowRequest参数说明

  • rowChange(必选)RowPutChange:写入的行数据信息,包含以下参数。

    名称

    类型

    说明

    tableName(必选)

    String

    数据表名称。

    primaryKey(必选)

    PrimaryKey

    主键信息,包括主键列名称和主键值。

    • 主键列数据类型包括 STRING、INTEGER 和 BINARY。

    • 写入数据的主键个数和类型必须与数据表的主键保持一致。

    • 主键列为自增列时,需将该列的值设置为占位符,详情请参见主键列自增

    columnsToPut(可选)

    List<Column>

    属性列信息,包括属性列名称、属性列值和数据版本号。

    • 属性列数据类型包括 STRING、INTEGER、BINARY、DOUBLE 和 BOOLEAN。

    • 数据版本号即时间戳,默认由系统自动生成,也可以自己指定,详情请参见数据版本和生命周期

    condition(可选)

    Condition

    写入条件,详情请参见条件更新

    returnType(可选)

    ReturnType

    返回类型。

    • RT_NONE:默认值,不返回数据。

    • RT_PK:返回主键列,可以用于主键列自增。

    • RT_AFTER_MODIFY:返回更改后的列值,用于原子计数器

示例代码

以下示例代码在 test_table 表中写入一行数据,该行数据的主键值为 row1。

public static void putRowExample(SyncClient client) {
    // 构造主键
    PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
    primaryKeyBuilder.addPrimaryKeyColumn("id", PrimaryKeyValue.fromString("row1"));
    PrimaryKey primaryKey = primaryKeyBuilder.build();

    // 构造写入行数据
    RowPutChange rowPutChange = new RowPutChange("test_table", primaryKey);

    // 调用 putRow 方法写入行数据
    PutRowRequest putRowRequest = new PutRowRequest(rowPutChange);
    PutRowResponse putRowResponse = client.putRow(putRowRequest);

    // 返回结果处理
    System.out.println("* RequestId: " + putRowResponse.getRequestId());
    System.out.println("* Read CU Cost: " + putRowResponse.getConsumedCapacity().getCapacityUnit().getReadCapacityUnit());
    System.out.println("* Write CU Cost: " + putRowResponse.getConsumedCapacity().getCapacityUnit().getWriteCapacityUnit());
}
  • 添加属性列。

    rowPutChange.addColumn("col1", ColumnValue.fromString("val1"));
  • 指定数据版本号,您可以为每个属性列指定单独的版本号。

    // 将当前时间戳作为版本号
    rowPutChange.addColumn("col1", ColumnValue.fromString("val1"), System.currentTimeMillis());

相关文档