Geniş sütunlu model tablosuna bir satır yazmak veya güncellemek için Tablestore SDK for Java kullanın.
Ön koşullar
Tablestore SDK for Java yükleyin ve istemciyi başlatın.
Açıklama
Birincil anahtarıyla tanımlanan bir satıra öznitelik sütunları yazmak için putRow yöntemini çağırın. Satır zaten varsa Tablestore ilgili öznitelik sütunu sürümlerini ekler veya üzerine yazar. Yazma işleminin gerçekleştirilip gerçekleştirilmeyeceğini denetlemek için condition parametresini kullanabilirsiniz.
public PutRowResponse putRow(PutRowRequest putRowRequest) throws TableStoreException, ClientException
Aşağıdaki örnekte, birincil anahtar sütunu id değeri row1 olarak ayarlanmış ve öznitelik sütunu col1 değeri val1 olarak ayarlanmış bir satır put_row_demo tablosuna yazılır.
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));
Parametreler
PutRowRequest aşağıdaki parametreleri içerir.
|
|
|
|
|
|
|
|
|
|
|
Yerel işlem ID'si. Bu parametreyi yalnızca yerel işlem içinde veri yazarken belirtin. ID'yi nasıl alacağınız ve kullanacağınız hakkında bilgi için bkz. Yerel işlemler kullanma. |
Satır değişikliği
rowChange parametresi RowPutChange türündedir ve aşağıdaki parametreleri içerir.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Yazma koşulu. Varsayılan olarak Tablestore satırın var olup olmadığını kontrol etmez. Koşul yapılandırması hakkında bilgi için bkz. Koşullu güncellemeler kullanma. |
|
|
|
|
Öznitelik sütunları
rowChange.columnsToPut[] dizisindeki her öğe Column türündedir ve aşağıdaki parametreleri içerir.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Örnekler
Birden çok öznitelik sütunu yazma
Aşağıdaki örnek, her sütun için addColumn çağrısı yapma ve hazırlanmış bir List<Column> listesini tek çağrıda geçirme yaklaşımlarının her ikisini de gösterir.
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);
// Option 1: Add columns one at a time with addColumn
rowPutChange.addColumn("name", ColumnValue.fromString("Alice"));
rowPutChange.addColumn("age", ColumnValue.fromLong(30));
rowPutChange.addColumn("active", ColumnValue.fromBoolean(true));
// Option 2: Pass a List<Column> in a single call
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));
Veri sürümünü belirtme
Sütunu yazarken özel bir veri sürümü ayarlamak için addColumn(name, value, timestamp) yöntemini kullanın.
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));
Otomatik artan sütun için birincil anahtarı döndürme
Otomatik artan birincil anahtar sütunu için sütun değerini PrimaryKeyValue.AUTO_INCREMENT yer tutucusuna ayarlayın; sunucu yazma sırasında gerçek değeri oluşturur. Oluşturulan değeri yanıtta almak için yazma işleminden önce setReturnType(ReturnType.RT_PK) çağrısını yapın, ardından yazma döndükten sonra response.getRow() çağrısını yapın.
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());