Tutorial Introduction
Prev | Chapter 1. Introduction | Next

## 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:

- Object-to-data bindings

- The database environment

- Databases that contain key/value records

- Secondary index databases that contain index keys

- Java collections for accessing databases and indices

- Transactions used to commit or undo database changes

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

- The Basic Program

- Using Secondary Indices

- Using Entity Classes

- Using Tuples

- Using Serializable Entities

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

Prev | Up | Next
Developing a Sleepycat Collections Application | Home | Chapter 2. The Basic Program