je/docs/GettingStartedGuide/simpleget.html

171 lines
6.4 KiB
HTML
Raw Normal View History

2021-06-06 17:46:45 +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>Retrieving Objects from an Entity Store</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="Getting Started with Berkeley DB Java Edition" />
<link rel="up" href="persist_access.html" title="Chapter 5. Saving and Retrieving Objects" />
<link rel="prev" href="simpleput.html" title="Placing Objects in an Entity Store" />
<link rel="next" href="getmultiple.html" title="Retrieving Multiple Objects" />
</head>
<body>
<div xmlns="" class="navheader">
<div class="libver">
<p>Library Version 12.2.7.5</p>
</div>
<table width="100%" summary="Navigation header">
<tr>
<th colspan="3" align="center">Retrieving Objects from an Entity Store</th>
</tr>
<tr>
<td width="20%" align="left"><a accesskey="p" href="simpleput.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="getmultiple.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="simpleget"></a>Retrieving Objects from an Entity Store</h2>
</div>
</div>
</div>
<p>
You retrieve objects placed in an entity store by using
either the object's primary index, or the appropriate
secondary index if it exists. The following application
illustrates this by retrieving some of the objects that
we placed in an entity store in the previous section.
</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 com.sleepycat.je.DatabaseException;
import com.sleepycat.je.Environment;
import com.sleepycat.je.EnvironmentConfig;
import com.sleepycat.persist.EntityStore;
import com.sleepycat.persist.StoreConfig;
public class SimpleStoreGet {
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);
// Open the environment and entity store
envmnt = new Environment(envHome, envConfig);
store = new EntityStore(envmnt, "EntityStore", storeConfig);
} </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 retrieve a few objects. To do this, we instantiate a
<code class="classname">SimpleDA</code> (see <a class="xref" href="simpleda.html" title="SimpleDA.class">SimpleDA.class</a>) class that we use to access
our primary and secondary indexes. Then we retrieve objects
based on a primary or secondary index value. And finally, we
display the retrieved objects.
</p>
<pre class="programlisting"> // Retrieve some SimpleEntityClass objects from the 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 = sda.pIdx.get("keyone");
SimpleEntityClass sec2 = sda.pIdx.get("keytwo");
SimpleEntityClass sec4 = sda.sIdx.get("skeythree");
System.out.println("sec1: " + sec1.getPKey());
System.out.println("sec2: " + sec2.getPKey());
System.out.println("sec4: " + sec4.getPKey());
shutdown();
} </pre>
<p>
Finally, to complete our class, we need a
<code class="methodname">main()</code> method, which simply calls our
<code class="methodname">run()</code> method.
</p>
<pre class="programlisting"> // main
public static void main(String args[]) {
SimpleStoreGet ssg = new SimpleStoreGet();
try {
ssg.run();
} catch (DatabaseException dbe) {
System.err.println("SimpleStoreGet: " + 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="simpleput.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="getmultiple.html">Next</a></td>
</tr>
<tr>
<td width="40%" align="left" valign="top">Placing Objects in an Entity Store </td>
<td width="20%" align="center">
<a accesskey="h" href="index.html">Home</a>
</td>
<td width="40%" align="right" valign="top"> Retrieving Multiple Objects</td>
</tr>
</table>
</div>
</body>
</html>