Berkeley DB Reference Guide: Adding database items
Description: Berkeley DB: An embedded database programmatic toolkit.
Keywords: embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,Java,C,C++

### Berkeley DB Reference Guide: Java API Tutorial - Basic |

### Adding database items

Adding (as well as updating, removing, and deleting) information in the database is accomplished via the standard Java collections API. In the example, the Map.put method is used to add objects. All standard Java methods for modifying a collection may be used with the Java API.

The PopulateDatabase.doWork method calls private methods for adding objects to each of the three database stores. It is called via the TransactionRunner class and was outlined in the previous section.

>     import java.util.Map;
>     ...
>     public class Sample
>     {
>         ...
>         private SampleViews views;
>         ...
>         private class PopulateDatabase implements TransactionWorker
>         {
>             public void doWork()
>                 throws Exception
>             {
>                 addSuppliers();
>                 addParts();
>                 addShipments();
>             }
>         }

>         private void addSuppliers()
>         {
>         }

>         private void addParts()
>         {
>         }

>         private void addShipments()
>         {
>         }
>     }

The addSuppliers, addParts and addShipments methods add objects to the Suppliers, Parts and Shipments stores. The Map for each store is obtained from the SampleViews object.

>         private void addSuppliers()
>         {
>             Map suppliers = views.getSupplierMap();
>             if (suppliers.isEmpty())
>             {
>                 System.out.println("Adding Suppliers");
>                 suppliers.put(new SupplierKey("S1"),
>                               new SupplierValue("Smith", 20, "London"));
>                 suppliers.put(new SupplierKey("S2"),
>                               new SupplierValue("Jones", 10, "Paris"));
>                 suppliers.put(new SupplierKey("S3"),
>                               new SupplierValue("Blake", 30, "Paris"));
>                 suppliers.put(new SupplierKey("S4"),
>                               new SupplierValue("Clark", 20, "London"));
>                 suppliers.put(new SupplierKey("S5"),
>                               new SupplierValue("Adams", 30, "Athens"));
>             }
>         }

>         private void addParts()
>         {
>             Map parts = views.getPartMap();
>             if (parts.isEmpty())
>             {
>                 System.out.println("Adding Parts");
>                 parts.put(new PartKey("P1"),
>                           new PartValue("Nut", "Red",
>                                         new Weight(12.0, Weight.GRAMS),
>                                         "London"));
>                 parts.put(new PartKey("P2"),
>                           new PartValue("Bolt", "Green",
>                                         new Weight(17.0, Weight.GRAMS),
>                                         "Paris"));
>                 parts.put(new PartKey("P3"),
>                           new PartValue("Screw", "Blue",
>                                         new Weight(17.0, Weight.GRAMS),
>                                         "Rome"));
>                 parts.put(new PartKey("P4"),
>                           new PartValue("Screw", "Red",
>                                         new Weight(14.0, Weight.GRAMS),
>                                         "London"));
>                 parts.put(new PartKey("P5"),
>                           new PartValue("Cam", "Blue",
>                                         new Weight(12.0, Weight.GRAMS),
>                                         "Paris"));
>                 parts.put(new PartKey("P6"),
>                           new PartValue("Cog", "Red",
>                                         new Weight(19.0, Weight.GRAMS),
>                                         "London"));
>             }
>         }

>         private void addShipments()
>         {
>             Map shipments = views.getShipmentMap();
>             if (shipments.isEmpty())
>             {
>                 System.out.println("Adding Shipments");
>                 shipments.put(new ShipmentKey("P1", "S1"),
>                               new ShipmentValue(300));
>                 shipments.put(new ShipmentKey("P2", "S1"),
>                               new ShipmentValue(200));
>                 shipments.put(new ShipmentKey("P3", "S1"),
>                               new ShipmentValue(400));
>                 shipments.put(new ShipmentKey("P4", "S1"),
>                               new ShipmentValue(200));
>                 shipments.put(new ShipmentKey("P5", "S1"),
>                               new ShipmentValue(100));
>                 shipments.put(new ShipmentKey("P6", "S1"),
>                               new ShipmentValue(100));
>                 shipments.put(new ShipmentKey("P1", "S2"),
>                               new ShipmentValue(300));
>                 shipments.put(new ShipmentKey("P2", "S2"),
>                               new ShipmentValue(400));
>                 shipments.put(new ShipmentKey("P2", "S3"),
>                               new ShipmentValue(200));
>                 shipments.put(new ShipmentKey("P2", "S4"),
>                               new ShipmentValue(200));
>                 shipments.put(new ShipmentKey("P4", "S4"),
>                               new ShipmentValue(300));
>                 shipments.put(new ShipmentKey("P5", "S4"),
>                               new ShipmentValue(400));
>             }
>         }

The key and value classes used above were defined in the Defining serialized key and value classes section.

In each method above, objects are added only if the map is not empty. This is a simple way of allowing the example program to be run repeatedly. In real-life applications another technique -- checking the Map.containsKey method, for example -- might be used.

Copyright (c) 1996-2003 Sleepycat Software, Inc. - All rights reserved.