2011-09-13 17:44:24 +00:00
|
|
|
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
|
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
|
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
|
|
|
<head>
|
|
|
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
|
|
|
|
<title>Adding Database Items</title>
|
|
|
|
|
<link rel="stylesheet" href="gettingStarted.css" type="text/css" />
|
|
|
|
|
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2" />
|
|
|
|
|
<link rel="start" href="index.html" title="Berkeley DB Collections Tutorial" />
|
|
|
|
|
<link rel="up" href="BasicProgram.html" title="Chapter 2. The Basic Program" />
|
|
|
|
|
<link rel="prev" href="usingtransactions.html" title="Using Transactions" />
|
|
|
|
|
<link rel="next" href="retrievingdatabaseitems.html" title="Retrieving Database Items" />
|
|
|
|
|
</head>
|
|
|
|
|
<body>
|
|
|
|
|
<div xmlns="" class="navheader">
|
|
|
|
|
<div class="libver">
|
2012-11-14 21:35:20 +00:00
|
|
|
|
<p>Library Version 11.2.5.3</p>
|
2011-09-13 17:44:24 +00:00
|
|
|
|
</div>
|
|
|
|
|
<table width="100%" summary="Navigation header">
|
|
|
|
|
<tr>
|
|
|
|
|
<th colspan="3" align="center">
|
|
|
|
|
Adding Database Items
|
|
|
|
|
</th>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td width="20%" align="left"><a accesskey="p" href="usingtransactions.html">Prev</a> </td>
|
|
|
|
|
<th width="60%" align="center">Chapter 2.
|
|
|
|
|
The Basic Program
|
|
|
|
|
</th>
|
|
|
|
|
<td width="20%" align="right"> <a accesskey="n" href="retrievingdatabaseitems.html">Next</a></td>
|
|
|
|
|
</tr>
|
|
|
|
|
</table>
|
|
|
|
|
<hr />
|
|
|
|
|
</div>
|
|
|
|
|
<div class="sect1" lang="en" xml:lang="en">
|
|
|
|
|
<div class="titlepage">
|
|
|
|
|
<div>
|
|
|
|
|
<div>
|
|
|
|
|
<h2 class="title" style="clear: both"><a id="addingdatabaseitems"></a>
|
|
|
|
|
Adding Database Items
|
|
|
|
|
</h2>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<p>
|
|
|
|
|
Adding (as well as updating, removing, and deleting) information
|
|
|
|
|
in the database is accomplished via the standard Java collections
|
|
|
|
|
API. In the example, the
|
|
|
|
|
<a class="ulink" href="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html#put(K, V)" target="_top">Map.put</a>
|
|
|
|
|
|
|
|
|
|
method is used to add objects. All standard Java methods for
|
|
|
|
|
modifying a collection may be used with the DB Java Collections API.
|
|
|
|
|
</p>
|
|
|
|
|
<p>
|
|
|
|
|
The <code class="methodname">PopulateDatabase.doWork()</code> method calls private methods
|
|
|
|
|
for adding objects to each of the three database stores. It is
|
|
|
|
|
called via the
|
|
|
|
|
<a class="ulink" href="../../java/com/sleepycat/collections/TransactionRunner.html" target="_top">TransactionRunner</a>
|
|
|
|
|
|
|
|
|
|
class and was outlined in the previous section.
|
|
|
|
|
</p>
|
|
|
|
|
<a id="cb_populatedatabase"></a>
|
|
|
|
|
<pre class="programlisting">import java.util.Map;
|
|
|
|
|
import com.sleepycat.collections.TransactionWorker;
|
|
|
|
|
...
|
|
|
|
|
public class Sample
|
|
|
|
|
{
|
|
|
|
|
...
|
|
|
|
|
private SampleViews views;
|
|
|
|
|
...
|
|
|
|
|
private class PopulateDatabase implements TransactionWorker
|
|
|
|
|
{
|
|
|
|
|
public void doWork()
|
|
|
|
|
throws Exception
|
|
|
|
|
{
|
|
|
|
|
<strong class="userinput"><code> addSuppliers();
|
|
|
|
|
addParts();
|
|
|
|
|
addShipments();</code></strong>
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
...
|
|
|
|
|
|
|
|
|
|
<strong class="userinput"><code> private void addSuppliers()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void addParts()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void addShipments()
|
|
|
|
|
{
|
|
|
|
|
}</code></strong>
|
|
|
|
|
} </pre>
|
|
|
|
|
<p>
|
|
|
|
|
The <code class="methodname">addSuppliers()</code>, <code class="methodname">addParts()</code> and <code class="methodname">addShipments()</code>
|
|
|
|
|
methods add objects to the Suppliers, Parts and Shipments stores.
|
|
|
|
|
The
|
|
|
|
|
<a class="ulink" href="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html" target="_top">Map</a>
|
|
|
|
|
|
|
|
|
|
for each store is obtained from the <code class="classname">SampleViews</code> object.
|
|
|
|
|
</p>
|
|
|
|
|
<a id="cb_addsuppliers"></a>
|
|
|
|
|
<pre class="programlisting"> private void addSuppliers()
|
|
|
|
|
{
|
|
|
|
|
<strong class="userinput"><code> Map suppliers = views.getSupplierMap();
|
|
|
|
|
if (suppliers.isEmpty())
|
|
|
|
|
{
|
|
|
|
|
System.out.println("Adding Suppliers");
|
|
|
|
|
suppliers.put(new SupplierKey("S1"),
|
|
|
|
|
new SupplierData("Smith", 20, "London"));
|
|
|
|
|
suppliers.put(new SupplierKey("S2"),
|
|
|
|
|
new SupplierData("Jones", 10, "Paris"));
|
|
|
|
|
suppliers.put(new SupplierKey("S3"),
|
|
|
|
|
new SupplierData("Blake", 30, "Paris"));
|
|
|
|
|
suppliers.put(new SupplierKey("S4"),
|
|
|
|
|
new SupplierData("Clark", 20, "London"));
|
|
|
|
|
suppliers.put(new SupplierKey("S5"),
|
|
|
|
|
new SupplierData("Adams", 30, "Athens"));
|
|
|
|
|
}</code></strong>
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void addParts()
|
|
|
|
|
{
|
|
|
|
|
<strong class="userinput"><code> Map parts = views.getPartMap();
|
|
|
|
|
if (parts.isEmpty())
|
|
|
|
|
{
|
|
|
|
|
System.out.println("Adding Parts");
|
|
|
|
|
parts.put(new PartKey("P1"),
|
|
|
|
|
new PartData("Nut", "Red",
|
|
|
|
|
new Weight(12.0, Weight.GRAMS),
|
|
|
|
|
"London"));
|
|
|
|
|
parts.put(new PartKey("P2"),
|
|
|
|
|
new PartData("Bolt", "Green",
|
|
|
|
|
new Weight(17.0, Weight.GRAMS),
|
|
|
|
|
"Paris"));
|
|
|
|
|
parts.put(new PartKey("P3"),
|
|
|
|
|
new PartData("Screw", "Blue",
|
|
|
|
|
new Weight(17.0, Weight.GRAMS),
|
|
|
|
|
"Rome"));
|
|
|
|
|
parts.put(new PartKey("P4"),
|
|
|
|
|
new PartData("Screw", "Red",
|
|
|
|
|
new Weight(14.0, Weight.GRAMS),
|
|
|
|
|
"London"));
|
|
|
|
|
parts.put(new PartKey("P5"),
|
|
|
|
|
new PartData("Cam", "Blue",
|
|
|
|
|
new Weight(12.0, Weight.GRAMS),
|
|
|
|
|
"Paris"));
|
|
|
|
|
parts.put(new PartKey("P6"),
|
|
|
|
|
new PartData("Cog", "Red",
|
|
|
|
|
new Weight(19.0, Weight.GRAMS),
|
|
|
|
|
"London"));
|
|
|
|
|
}</code></strong>
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void addShipments()
|
|
|
|
|
{
|
|
|
|
|
<strong class="userinput"><code> Map shipments = views.getShipmentMap();
|
|
|
|
|
if (shipments.isEmpty())
|
|
|
|
|
{
|
|
|
|
|
System.out.println("Adding Shipments");
|
|
|
|
|
shipments.put(new ShipmentKey("P1", "S1"),
|
|
|
|
|
new ShipmentData(300));
|
|
|
|
|
shipments.put(new ShipmentKey("P2", "S1"),
|
|
|
|
|
new ShipmentData(200));
|
|
|
|
|
shipments.put(new ShipmentKey("P3", "S1"),
|
|
|
|
|
new ShipmentData(400));
|
|
|
|
|
shipments.put(new ShipmentKey("P4", "S1"),
|
|
|
|
|
new ShipmentData(200));
|
|
|
|
|
shipments.put(new ShipmentKey("P5", "S1"),
|
|
|
|
|
new ShipmentData(100));
|
|
|
|
|
shipments.put(new ShipmentKey("P6", "S1"),
|
|
|
|
|
new ShipmentData(100));
|
|
|
|
|
shipments.put(new ShipmentKey("P1", "S2"),
|
|
|
|
|
new ShipmentData(300));
|
|
|
|
|
shipments.put(new ShipmentKey("P2", "S2"),
|
|
|
|
|
new ShipmentData(400));
|
|
|
|
|
shipments.put(new ShipmentKey("P2", "S3"),
|
|
|
|
|
new ShipmentData(200));
|
|
|
|
|
shipments.put(new ShipmentKey("P2", "S4"),
|
|
|
|
|
new ShipmentData(200));
|
|
|
|
|
shipments.put(new ShipmentKey("P4", "S4"),
|
|
|
|
|
new ShipmentData(300));
|
|
|
|
|
shipments.put(new ShipmentKey("P5", "S4"),
|
|
|
|
|
new ShipmentData(400));
|
|
|
|
|
}</code></strong>
|
|
|
|
|
}
|
|
|
|
|
}</pre>
|
|
|
|
|
<p>
|
|
|
|
|
The key and value classes used above were defined in the
|
|
|
|
|
<a class="xref" href="BasicProgram.html#keyandvalueclasses" title="Defining Serialized Key and Value Classes">
|
|
|
|
|
Defining Serialized Key and Value Classes
|
|
|
|
|
</a>.
|
|
|
|
|
</p>
|
|
|
|
|
<p>
|
|
|
|
|
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
|
|
|
|
|
<a class="ulink" href="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html#containsKey(java.lang.Object)" target="_top">Map.containsKey</a>
|
|
|
|
|
|
|
|
|
|
method, for example — might be used.
|
|
|
|
|
</p>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="navfooter">
|
|
|
|
|
<hr />
|
|
|
|
|
<table width="100%" summary="Navigation footer">
|
|
|
|
|
<tr>
|
|
|
|
|
<td width="40%" align="left"><a accesskey="p" href="usingtransactions.html">Prev</a> </td>
|
|
|
|
|
<td width="20%" align="center">
|
|
|
|
|
<a accesskey="u" href="BasicProgram.html">Up</a>
|
|
|
|
|
</td>
|
|
|
|
|
<td width="40%" align="right"> <a accesskey="n" href="retrievingdatabaseitems.html">Next</a></td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td width="40%" align="left" valign="top">
|
|
|
|
|
Using Transactions
|
|
|
|
|
</td>
|
|
|
|
|
<td width="20%" align="center">
|
|
|
|
|
<a accesskey="h" href="index.html">Home</a>
|
|
|
|
|
</td>
|
|
|
|
|
<td width="40%" align="right" valign="top">
|
|
|
|
|
Retrieving Database Items
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
</table>
|
|
|
|
|
</div>
|
|
|
|
|
</body>
|
|
|
|
|
</html>
|