ストアへのレコードの書込み
ストアでの新しいレコードの作成および既存レコードの更新は、通常は同一の操作です(ただし、レコードを更新する場合のみ、または作成する場合のみ動作するメソッドは存在します。このことは、この項の少し後ろの方で説明しています)。どちらの場合も、適切なキーを使用するストアにレコードを単純に書込みます。そのキーを持つレコードが現在ストアに存在しない場合、レコードが新たに作成されます。指定のキーを使用するレコードが存在する場合、そのレコードは、ストアに書き込む情報で更新されます。
通常のレコードをストアに格納するには、次のようにします。
-
キーのすべてのメジャー・パス・コンポーネントとマイナー・パス・コンポーネントを必ず指定してキーを作成します。メジャー・パス・コンポーネントとマイナー・パス・コンポーネントの詳細は、「レコードの設計に関する考察」を参照してください。
-
値を作成します。これは、ストアに格納する実際のデータです。
-
KVStore
クラスのputメソッドのいずれかを使用してレコードをストアに格納します。
次に、ストアへのレコードの書込みの簡単な例を示します。KVStore
ハンドルがすでに作成されているものとします。簡略化のため、この例では簡単に文字列をシリアライズして、格納操作の値として使用します。
package kvstore.basicExample;
...
import oracle.kv.Key;
import oracle.kv.Value;
import java.util.ArrayList;
...
ArrayList<String> majorComponents = new ArrayList<String>();
ArrayList<String> minorComponents = new ArrayList<String>();
...
// Define the major and minor path components for the key
majorComponents.add("Smith");
majorComponents.add("Bob");
minorComponents.add("phonenumber");
// Create the key
Key myKey = Key.createKey(majorComponents, minorComponents);
String data = "408 555 5555";
// Create the value. Notice that we serialize the contents of the
// String object when we create the value.
Value myValue = Value.createValue(data.getBytes());
// Now put the record. Note that we do not show the creation of the
// kvstore handle here.
kvstore.put(myKey, myValue);
特別な目的のストリームで提供されるキー/値のペアをストアにロードすることもできます。詳細は、「一括格納操作」を参照してください。
その他の格納操作
前述した非常に単純な使用方法であるKVStore.put()
メソッド以外に、使用できる重要な格納操作が3つあります。
-
KVStore.putIfAbsent()
このメソッドでは、キーが現在ストアに存在しない場合にのみレコードが格納されます。つまり、このメソッドは、作成操作になった場合にのみ成功します。
-
KVStore.putIfPresent()
このメソッドでは、キーがすでにストアに存在する場合にのみレコードが格納されます。つまり、このメソッドは、更新操作になった場合にのみ成功します。
-
KVStore.putIfVersion()
このメソッドでは、指定されたバージョン情報に値が一致する場合にのみレコードが格納されます。詳細は、「バージョンの使用」を参照してください。