Files
cpython-source-deps/docs/gsg/JAVA/simpleput.html
2017-09-04 13:40:25 -05:00

225 lines
8.1 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?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>Placing Objects in an Entity Store</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="Getting Started with Berkeley DB" />
<link rel="up" href="persist_access.html" title="Chapter 5. Saving and Retrieving Objects" />
<link rel="previous" href="simpleda.html" title="SimpleDA.class" />
<link rel="next" href="simpleget.html" title="Retrieving Objects from an Entity Store" />
</head>
<body>
<div class="navheader">
<table width="100%" summary="Navigation header">
<tr>
<th colspan="3" align="center">Placing Objects in an Entity Store</th>
</tr>
<tr>
<td width="20%" align="left"><a accesskey="p" href="simpleda.html">Prev</a> </td>
<th width="60%" align="center">Chapter 5. Saving and Retrieving Objects</th>
<td width="20%" align="right"> <a accesskey="n" href="simpleget.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="simpleput"></a>Placing Objects in an Entity Store</h2>
</div>
</div>
<div></div>
</div>
<p>
In order to place an object in a DPL entity store,
you must:
</p>
<div class="orderedlist">
<ol type="1">
<li>
<p>
Open the environment and store.
</p>
</li>
<li>
<p>
Instantiate the object.
</p>
</li>
<li>
<p>
Put the object to the store using the
<tt class="methodname">put()</tt> method
for the object's primary index.
</p>
</li>
</ol>
</div>
<p>
The following example uses the <tt class="classname">SimpleDA</tt>
class that we show in <a href="simpleda.html">SimpleDA.class</a> to put a
<tt class="classname">SimpleEntityClass</tt> object (see
<a href="persist_access.html#simpleentity">A Simple Entity Class</a>) to the
entity store.
</p>
<p>
To begin, we import the Java classes that our example
needs. We also instantiate the private data members that we
require.
</p>
<pre class="programlisting">package persist.gettingStarted;
import java.io.File;
import java.io.FileNotFoundException;
import com.sleepycat.db.DatabaseException;
import com.sleepycat.db.Environment;
import com.sleepycat.db.EnvironmentConfig;
import com.sleepycat.persist.EntityStore;
import com.sleepycat.persist.StoreConfig;
public class SimpleStorePut {
private static File envHome = new File("./JEDB");
private Environment envmnt;
private EntityStore store;
private SimpleDA sda; </pre>
<p>
Next we create a method that simply opens our database
environment and entity store for us.
</p>
<pre class="programlisting"> // The setup() method opens the environment and store
// for us.
public void setup()
throws DatabaseException {
EnvironmentConfig envConfig = new EnvironmentConfig();
StoreConfig storeConfig = new StoreConfig();
envConfig.setAllowCreate(true);
storeConfig.setAllowCreate(true);
try {
// Open the environment and entity store
envmnt = new Environment(envHome, envConfig);
store = new EntityStore(envmnt, "EntityStore", storeConfig);
} catch (FileNotFoundException fnfe) {
System.err.println("setup(): " + fnfe.toString());
System.exit(-1);
}
} </pre>
<p>
We also need a method to close our environment and store.
</p>
<pre class="programlisting"> // Close our environment and store.
public void shutdown()
throws DatabaseException {
store.close();
envmnt.close();
} </pre>
<p>
Now we need to create a method to actually write objects to our
store. This method creates a <tt class="classname">SimpleDA</tt>
object (see <a href="simpleda.html">SimpleDA.class</a> that we
will use to access our indexes. Then we instantiate a serious
of <tt class="classname">SimpleEntityClass</tt> (see <a href="persist_access.html#simpleentity">A Simple Entity Class</a>)
instances that we
will place in our store. Finally, we use our primary index
(obtained from the <tt class="classname">SimpleDA</tt> class
instance) to actually place these objects in our store.
</p>
<p>
In <a href="simpleget.html">Retrieving Objects from an Entity Store</a>
we show a class that is used to retrieve these objects.
</p>
<pre class="programlisting"> // Populate the entity store
private void run()
throws DatabaseException {
setup();
// Open the data accessor. This is used to store
// persistent objects.
sda = new SimpleDA(store);
// Instantiate and store some entity classes
SimpleEntityClass sec1 = new SimpleEntityClass();
SimpleEntityClass sec2 = new SimpleEntityClass();
SimpleEntityClass sec3 = new SimpleEntityClass();
SimpleEntityClass sec4 = new SimpleEntityClass();
SimpleEntityClass sec5 = new SimpleEntityClass();
sec1.setpKey("keyone");
sec1.setsKey("skeyone");
sec2.setpKey("keytwo");
sec2.setsKey("skeyone");
sec3.setpKey("keythree");
sec3.setsKey("skeytwo");
sec4.setpKey("keyfour");
sec4.setsKey("skeythree");
sec5.setpKey("keyfive");
sec5.setsKey("skeyfour");
sda.pIdx.put(sec1);
sda.pIdx.put(sec2);
sda.pIdx.put(sec3);
sda.pIdx.put(sec4);
sda.pIdx.put(sec5);
shutdown();
} </pre>
<p>
Finally, to complete our class, we need a
<tt class="methodname">main()</tt> method, which simply calls our
<tt class="methodname">run()</tt> method.
</p>
<pre class="programlisting"> // main
public static void main(String args[]) {
SimpleStorePut ssp = new SimpleStorePut();
try {
ssp.run();
} catch (DatabaseException dbe) {
System.err.println("SimpleStorePut: " + dbe.toString());
dbe.printStackTrace();
} catch (Exception e) {
System.out.println("Exception: " + e.toString());
e.printStackTrace();
}
System.out.println("All done.");
}
} </pre>
</div>
<div class="navfooter">
<hr />
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left"><a accesskey="p" href="simpleda.html">Prev</a> </td>
<td width="20%" align="center">
<a accesskey="u" href="persist_access.html">Up</a>
</td>
<td width="40%" align="right"> <a accesskey="n" href="simpleget.html">Next</a></td>
</tr>
<tr>
<td width="40%" align="left" valign="top">SimpleDA.class </td>
<td width="20%" align="center">
<a accesskey="h" href="index.html">Home</a>
</td>
<td width="40%" align="right" valign="top"> Retrieving Objects from an Entity Store</td>
</tr>
</table>
</div>
</body>
</html>