<?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.62.4" />
<link rel="home" href="index.html" title="Berkeley DB Collections Tutorial" />
<link rel="up" href="BasicProgram.html" title="Chapter 2. 		The Basic Program 	" />
<link rel="previous" href="usingtransactions.html" title=" 		Using Transactions 	" />
<link rel="next" href="retrievingdatabaseitems.html" title=" 		Retrieving Database Items 	" />
</head>
<body>
<div class="navheader">
<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></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 href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html#put" 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 <tt class="methodname">PopulateDatabase.doWork()</tt> method calls private methods
for adding objects to each of the three database stores. It is
called via the
<a 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
{
<b class="userinput"><tt> addSuppliers();
addParts();
addShipments();</tt></b>
}
}
...
<b class="userinput"><tt> private void addSuppliers()
{
}
private void addParts()
{
}
private void addShipments()
{
}</tt></b>
} </pre>
<p>
The <tt class="methodname">addSuppliers()</tt>, <tt class="methodname">addParts()</tt> and <tt class="methodname">addShipments()</tt>
methods add objects to the Suppliers, Parts and Shipments stores.
The
<a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html" target="_top">Map</a>
for each store is obtained from the <tt class="classname">SampleViews</tt> object.
</p>
<a id="cb_addsuppliers"></a>
<pre class="programlisting"> private void addSuppliers()
{
<b class="userinput"><tt> 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"));
}</tt></b>
}
private void addParts()
{
<b class="userinput"><tt> 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"));
}</tt></b>
}
private void addShipments()
{
<b class="userinput"><tt> 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));
}</tt></b>
}
}</pre>
<p>
The key and value classes used above were defined in the
<a href="BasicProgram.html#keyandvalueclasses">
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 href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html#containsKey" 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>
Copyright 2K16 - 2K18 Indonesian Hacker Rulez