All Products
Search
Document Center

Tablestore:Menulis satu baris

Last Updated:Aug 05, 2026

Gunakan Tablestore SDK for Java untuk menulis atau memperbarui satu baris dalam tabel model Kolom Lebar.

Prasyarat

Instal Tablestore SDK for Java dan inisialisasi klien.

Deskripsi

Panggil putRow untuk menulis kolom atribut ke baris yang diidentifikasi oleh kunci primernya. Jika baris tersebut sudah ada, Tablestore akan menambahkan atau menimpa versi kolom atribut yang sesuai. Anda dapat menggunakan parameter condition untuk mengontrol apakah operasi penulisan dilakukan.

public PutRowResponse putRow(PutRowRequest putRowRequest) throws TableStoreException, ClientException

Contoh berikut menulis satu baris ke tabel put_row_demo dengan kolom kunci primer id bernilai row1 dan kolom atribut col1 bernilai val1.

String tableName = "put_row_demo";

PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
primaryKeyBuilder.addPrimaryKeyColumn("id", PrimaryKeyValue.fromString("row1"));
PrimaryKey primaryKey = primaryKeyBuilder.build();

RowPutChange rowPutChange = new RowPutChange(tableName, primaryKey);
rowPutChange.addColumn("col1", ColumnValue.fromString("val1"));

client.putRow(new PutRowRequest(rowPutChange));

Parameter

PutRowRequest mencakup parameter berikut.

Nama

Type

Deskripsi

rowChange (wajib)

RowPutChange

Konfigurasi untuk menulis satu baris.

transactionId (opsional)

String

ID transaksi lokal. Atur parameter ini hanya saat Anda menulis data dalam transaksi lokal.

Perubahan baris

rowChange bertipe RowPutChange dan mencakup parameter berikut.

Nama

Tipe

Deskripsi

tableName (wajib)

String

Nama tabel.

primaryKey (wajib)

PrimaryKey

Kunci primer baris. Nama, urutan, dan tipe kolom kunci primer harus sesuai dengan skema tabel. Kolom kunci primer mendukung tipe STRING, INTEGER, dan BINARY. Atur kolom kunci primer auto-increment ke PrimaryKeyValue.AUTO_INCREMENT.

columnsToPut (opsional)

List<Column>

Kolom atribut yang akan ditulis. Panggil addColumn beberapa kali untuk menambahkan kolom satu per satu, atau panggil addColumns untuk menambahkan beberapa kolom sekaligus.

condition (opsional)

Condition

Kondisi penulisan. Secara default, Tablestore tidak memeriksa apakah baris tersebut sudah ada.

returnType (opsional)

ReturnType

Tipe nilai kembalian. Nilai default-nya adalah RT_NONE, yang tidak mengembalikan informasi kunci primer. Atur parameter ini ke RT_PK untuk mengembalikan kunci primer lengkap, biasanya untuk mengambil nilai kunci primer auto-increment.

Kolom atribut

Setiap elemen dalam rowChange.columnsToPut[] bertipe Column dan mencakup parameter berikut.

Nama

Tipe

Deskripsi

name (wajib)

String

Nama kolom atribut.

value (wajib)

ColumnValue

Nilai kolom atribut. Tipe yang didukung adalah STRING, INTEGER, BINARY, DOUBLE, dan BOOLEAN.

timestamp (opsional)

long

Nomor versi data. Satuan: milidetik. Jika Anda tidak menentukan parameter ini, server akan menghasilkan nilainya.

Contoh

Menulis beberapa kolom atribut

Contoh ini menunjukkan dua pendekatan: memanggil addColumn untuk setiap kolom, atau meneruskan List<Column> yang telah disiapkan dalam satu pemanggilan.

String tableName = "put_row_demo";

PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
primaryKeyBuilder.addPrimaryKeyColumn("id", PrimaryKeyValue.fromString("row2"));
PrimaryKey primaryKey = primaryKeyBuilder.build();

RowPutChange rowPutChange = new RowPutChange(tableName, primaryKey);

// Opsi 1: Tambahkan kolom satu per satu dengan addColumn
rowPutChange.addColumn("name", ColumnValue.fromString("Alice"));
rowPutChange.addColumn("age", ColumnValue.fromLong(30));
rowPutChange.addColumn("active", ColumnValue.fromBoolean(true));

// Opsi 2: Teruskan List<Column> dalam satu pemanggilan
List<Column> columns = new ArrayList<>();
columns.add(new Column("score", ColumnValue.fromDouble(95.5)));
columns.add(new Column("city", ColumnValue.fromString("Hangzhou")));
rowPutChange.addColumns(columns);

client.putRow(new PutRowRequest(rowPutChange));

Menentukan versi data

Gunakan addColumn(name, value, timestamp) untuk mengatur versi data kustom saat menulis kolom tersebut.

String tableName = "put_row_demo";

PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
primaryKeyBuilder.addPrimaryKeyColumn("id", PrimaryKeyValue.fromString("row3"));
PrimaryKey primaryKey = primaryKeyBuilder.build();

RowPutChange rowPutChange = new RowPutChange(tableName, primaryKey);

long timestamp = System.currentTimeMillis();
rowPutChange.addColumn("col1", ColumnValue.fromString("val1"), timestamp);

client.putRow(new PutRowRequest(rowPutChange));

Mengembalikan kunci primer untuk kolom auto-increment

Untuk kolom kunci primer auto-increment, atur nilai kolom ke placeholder PrimaryKeyValue.AUTO_INCREMENT—server akan menghasilkan nilai aktual saat penulisan. Untuk mengambil nilai yang dihasilkan dalam respons, panggil setReturnType(ReturnType.RT_PK) sebelum menulis, lalu panggil response.getRow() setelah operasi selesai.

String tableName = "put_row_auto_inc_demo";

PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
primaryKeyBuilder.addPrimaryKeyColumn("partition_key", PrimaryKeyValue.fromString("pk1"));
primaryKeyBuilder.addPrimaryKeyColumn("auto_id", PrimaryKeyValue.AUTO_INCREMENT);
PrimaryKey primaryKey = primaryKeyBuilder.build();

RowPutChange rowPutChange = new RowPutChange(tableName, primaryKey);
rowPutChange.addColumn("payload", ColumnValue.fromString("hello"));
rowPutChange.setReturnType(ReturnType.RT_PK);

PutRowResponse response = client.putRow(new PutRowRequest(rowPutChange));
Row returnedRow = response.getRow();
System.out.println("Returned PK: " + returnedRow.getPrimaryKey());