Tutorial Introduction

Most of the remainder of this document illustrates the use of the Sleepycat Java Collections API by presenting a tutorial that describes usage of the API. This tutorial builds a shipment database, a familiar example from classic database texts.

The examples illustrate the following concepts of the Sleepycat Java Collections API:

The examples build on each other, but at the same time the source code for each example stands alone.

The shipment database consists of three database stores: the part store, the supplier store, and the shipment store. Each store contains a number of records, and each record consists of a key and a value.

Store Key Value
Part Part Number Name, Color, Weight, City
Supplier Supplier Number Name, Status, City
Shipment Part Number, Supplier Number Quantity

In the example programs, Java classes containing the fields above are defined for the key and value of each store: PartKey, PartData, SupplierKey, SupplierData, ShipmentKey and ShipmentData. In addition, because the Part's Weight field is itself composed of two fields — the weight value and the unit of measure — it is represented by a separate Weight class. These classes will be defined in the first example program.

In general the Sleepycat Java Collections API uses bindings to describe how Java objects are stored. A binding defines the stored data syntax and the mapping between a Java object and the stored data. The example programs show how to create different types of bindings, and explains the characteristics of each type.

The following tables show the record values that are used in all the example programs in the tutorial.

Number Name Color Weight City
P1 Nut Red 12.0 grams London
P2 Bolt Green 17.0 grams Paris
P3 Screw Blue 17.0 grams Rome
P4 Screw Red 14.0 grams London
P5 Cam Blue 12.0 grams Paris
P6 Cog Red 19.0 grams London
Number Name Status City
S1 Smith 20 London
S2 Jones 10 Paris
S3 Blake 30 Paris
S4 Clark 20 London
S5 Adams 30 Athens
Part Number Supplier Number Quantity
P1 S1 300
P1 S2 300
P2 S1 200
P2 S2 400
P2 S3 200
P2 S4 200
P3 S1 400
P4 S1 200
P4 S4 300
P5 S1 100
P5 S4 400
P6 S1 100