mirror of
https://github.com/berkeleydb/je.git
synced 2024-11-15 01:46:24 +00:00
244 lines
8.4 KiB
HTML
244 lines
8.4 KiB
HTML
|
<?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>Chapter 5. Saving and Retrieving Objects</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="dpl.html" title="Part I. Programming with the Direct Persistence Layer" />
|
|||
|
<link rel="prev" href="dplindexcreate.html" title="Creating Indexes" />
|
|||
|
<link rel="next" href="simpleda.html" title="SimpleDA.class" />
|
|||
|
</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">Chapter 5. Saving and Retrieving Objects</th>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td width="20%" align="left"><a accesskey="p" href="dplindexcreate.html">Prev</a> </td>
|
|||
|
<th width="60%" align="center">Part I. Programming with the Direct Persistence Layer</th>
|
|||
|
<td width="20%" align="right"> <a accesskey="n" href="simpleda.html">Next</a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<hr />
|
|||
|
</div>
|
|||
|
<div class="chapter" lang="en" xml:lang="en">
|
|||
|
<div class="titlepage">
|
|||
|
<div>
|
|||
|
<div>
|
|||
|
<h2 class="title"><a id="persist_access"></a>Chapter 5. Saving and Retrieving Objects</h2>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="toc">
|
|||
|
<p>
|
|||
|
<b>Table of Contents</b>
|
|||
|
</p>
|
|||
|
<dl>
|
|||
|
<dt>
|
|||
|
<span class="sect1">
|
|||
|
<a href="persist_access.html#simpleentity">A Simple Entity Class</a>
|
|||
|
</span>
|
|||
|
</dt>
|
|||
|
<dt>
|
|||
|
<span class="sect1">
|
|||
|
<a href="simpleda.html">SimpleDA.class</a>
|
|||
|
</span>
|
|||
|
</dt>
|
|||
|
<dt>
|
|||
|
<span class="sect1">
|
|||
|
<a href="simpleput.html">Placing Objects in an Entity Store</a>
|
|||
|
</span>
|
|||
|
</dt>
|
|||
|
<dt>
|
|||
|
<span class="sect1">
|
|||
|
<a href="simpleget.html">Retrieving Objects from an Entity Store</a>
|
|||
|
</span>
|
|||
|
</dt>
|
|||
|
<dt>
|
|||
|
<span class="sect1">
|
|||
|
<a href="getmultiple.html">Retrieving Multiple Objects</a>
|
|||
|
</span>
|
|||
|
</dt>
|
|||
|
<dd>
|
|||
|
<dl>
|
|||
|
<dt>
|
|||
|
<span class="sect2">
|
|||
|
<a href="getmultiple.html#dpl_cursor_initialize">Cursor Initialization</a>
|
|||
|
</span>
|
|||
|
</dt>
|
|||
|
<dt>
|
|||
|
<span class="sect2">
|
|||
|
<a href="getmultiple.html#dpl_dups">Working with Duplicate Keys</a>
|
|||
|
</span>
|
|||
|
</dt>
|
|||
|
<dt>
|
|||
|
<span class="sect2">
|
|||
|
<a href="getmultiple.html#dpl_cursor_range">Key Ranges</a>
|
|||
|
</span>
|
|||
|
</dt>
|
|||
|
</dl>
|
|||
|
</dd>
|
|||
|
<dt>
|
|||
|
<span class="sect1">
|
|||
|
<a href="dpl_entityjoin.html">Join Cursors</a>
|
|||
|
</span>
|
|||
|
</dt>
|
|||
|
<dt>
|
|||
|
<span class="sect1">
|
|||
|
<a href="dpl_delete.html">Deleting Entity Objects</a>
|
|||
|
</span>
|
|||
|
</dt>
|
|||
|
<dt>
|
|||
|
<span class="sect1">
|
|||
|
<a href="dpl_replace.html">Replacing Entity Objects</a>
|
|||
|
</span>
|
|||
|
</dt>
|
|||
|
</dl>
|
|||
|
</div>
|
|||
|
<p>
|
|||
|
To store an object in an <code class="classname">EntityStore</code> you
|
|||
|
must annotate the class appropriately and then store it using
|
|||
|
<code class="methodname">PrimaryIndex.put()</code>.
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
To retrieve and object from an <code class="classname">EntityStore</code>
|
|||
|
you use the <code class="methodname">get()</code> method from either the
|
|||
|
<code class="classname">PrimaryIndex</code> or
|
|||
|
<code class="classname">SecondaryIndex</code>, whichever is most
|
|||
|
appropriate for your application.
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
In both cases, it simplifies things greatly if you create a data
|
|||
|
accessor class to organize your indexes.
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
In the next few sections we:
|
|||
|
</p>
|
|||
|
<div class="orderedlist">
|
|||
|
<ol type="1">
|
|||
|
<li>
|
|||
|
<p>
|
|||
|
Create an entity class that is ready to be stored
|
|||
|
in an entity store. This class will have both a
|
|||
|
primary index (required) declared for it, as well
|
|||
|
as a secondary index (which is optional).
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
See the next section for this implementation.
|
|||
|
</p>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<p>
|
|||
|
Create a data accessor class which is used to
|
|||
|
organize our data.
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
See <a class="xref" href="simpleda.html" title="SimpleDA.class">SimpleDA.class</a>
|
|||
|
for this implementation.
|
|||
|
</p>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<p>
|
|||
|
Create a simple class that is used to put objects
|
|||
|
to our entity store.
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
See <a class="xref" href="simpleput.html" title="Placing Objects in an Entity Store">Placing Objects in an Entity Store</a>
|
|||
|
for this implementation.
|
|||
|
</p>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<p>
|
|||
|
Create another class that retrieves objects from
|
|||
|
our entity store.
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
See <a class="xref" href="simpleget.html" title="Retrieving Objects from an Entity Store">Retrieving Objects from an Entity Store</a>
|
|||
|
for this implementation.
|
|||
|
</p>
|
|||
|
</li>
|
|||
|
</ol>
|
|||
|
</div>
|
|||
|
<div class="sect1" lang="en" xml:lang="en">
|
|||
|
<div class="titlepage">
|
|||
|
<div>
|
|||
|
<div>
|
|||
|
<h2 class="title" style="clear: both"><a id="simpleentity"></a>A Simple Entity Class</h2>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<p>
|
|||
|
For clarity's sake, this entity class is as simple a class as we can write.
|
|||
|
It contains only two data members, both of which are set
|
|||
|
and retrieved by simple setter and getter methods. Beyond
|
|||
|
that, by design this class does not do anything of particular
|
|||
|
interest.
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
Its implementation is as follows:
|
|||
|
</p>
|
|||
|
<pre class="programlisting">package persist.gettingStarted;
|
|||
|
|
|||
|
import com.sleepycat.persist.model.Entity;
|
|||
|
import com.sleepycat.persist.model.PrimaryKey;
|
|||
|
import static com.sleepycat.persist.model.Relationship.*;
|
|||
|
import com.sleepycat.persist.model.SecondaryKey;
|
|||
|
|
|||
|
@Entity
|
|||
|
public class SimpleEntityClass {
|
|||
|
|
|||
|
// Primary key is pKey
|
|||
|
@PrimaryKey
|
|||
|
private String pKey;
|
|||
|
|
|||
|
// Secondary key is the sKey
|
|||
|
@SecondaryKey(relate=MANY_TO_ONE)
|
|||
|
private String sKey;
|
|||
|
|
|||
|
public void setPKey(String data) {
|
|||
|
pKey = data;
|
|||
|
}
|
|||
|
|
|||
|
public void setSKey(String data) {
|
|||
|
sKey = data;
|
|||
|
}
|
|||
|
|
|||
|
public String getPKey() {
|
|||
|
return pKey;
|
|||
|
}
|
|||
|
|
|||
|
public String getSKey() {
|
|||
|
return sKey;
|
|||
|
}
|
|||
|
} </pre>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="navfooter">
|
|||
|
<hr />
|
|||
|
<table width="100%" summary="Navigation footer">
|
|||
|
<tr>
|
|||
|
<td width="40%" align="left"><a accesskey="p" href="dplindexcreate.html">Prev</a> </td>
|
|||
|
<td width="20%" align="center">
|
|||
|
<a accesskey="u" href="dpl.html">Up</a>
|
|||
|
</td>
|
|||
|
<td width="40%" align="right"> <a accesskey="n" href="simpleda.html">Next</a></td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td width="40%" align="left" valign="top">Creating Indexes </td>
|
|||
|
<td width="20%" align="center">
|
|||
|
<a accesskey="h" href="index.html">Home</a>
|
|||
|
</td>
|
|||
|
<td width="40%" align="right" valign="top"> SimpleDA.class</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
</body>
|
|||
|
</html>
|