Library Version 12.1.6.2

Key/Data Pairs and Bulk Operations
Prev | Chapter 3. Berkeley DB Client Driver APIs | Next

## Key/Data Pairs and Bulk Operations

Bulk operations in the driver APIs are quite different from the Java base APIs. In Java base APIs, multiple entries are encoded into a single byte array. In the driver APIs, they are simply maintained as a list of entries. As a consequence, the `MultipleEntry` class has no counterpart in the driver APIs, and `SMultipleDataEntry` , `SMultipleKeyDataEntry` and `SMultipleRecnoDataEntry` are no longer subclasses of `SDatabaseEntry`. To support functions that accept any type of data entries, `SDatabaseEntryBase` is added as the base interface of all data entry classes, and `SMultiplePairs` is added as the base class of `SMultipleKeyDataEntry` and `SMultipleRecnoDataEntry`.

In driver APIs, the amount of data to be returned in a single bulk retrieval is not limited by a buffer size, because `SMultipleDataEntry` , `SMultipleKeyDataEntry` or `SMultipleRecnoDataEntry` does not use a byte array buffer. Instead, the number of entries to be returned is specified with the `setBatchSize` method:

    SEnvironment env = ...

    // Open the database with the default configuration.
    SDatabase db = env.openDatabase(null, "db", null, null);

    // Create a SMultipleDataEntry for bulk retrieval.
    SMultipleDataEntry dataEntries = new SMultipleDataEntry();

    // Return at maximum of 10 data items from a single retrieval.
    dataEntries.setBatchSize(10);

    // Perform a bulk retrieval to return multiple data items
    // for the same duplicated key.
    db.get(null, new SDatabaseEntry("key".getBytes()), dataEntries, null);

    // Iterate over the retrieved items.
    SDatabaseEntry item = new SDatabaseEntry();
    while (dataEntries.next(item)) {
        // Do something for each item.
    }

Prev | Up | Next
Removing and Renaming Objects | Home | Statistic Functions