opendatabases.html   [plain text]


<?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>
		Opening and Closing Databases
	</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. &#10;&#9;&#9;The Basic Program&#10;&#9;" />
    <link rel="previous" href="openclasscatalog.html" title="&#10;&#9;&#9;Opening and Closing the Class Catalog&#10;&#9;" />
    <link rel="next" href="createbindingscollections.html" title="&#10;&#9;&#9;Creating Bindings and Collections&#10;&#9;" />
  </head>
  <body>
    <div class="navheader">
      <table width="100%" summary="Navigation header">
        <tr>
          <th colspan="3" align="center">
		Opening and Closing Databases
	</th>
        </tr>
        <tr>
          <td width="20%" align="left"><a accesskey="p" href="openclasscatalog.html">Prev</a> </td>
          <th width="60%" align="center">Chapter 2. 
		The Basic Program
	</th>
          <td width="20%" align="right"> <a accesskey="n" href="createbindingscollections.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="opendatabases"></a>
		Opening and Closing Databases
	</h2>
          </div>
        </div>
        <div></div>
      </div>
      <p>
    This section describes how to open and close the Part, Supplier
	and Shipment databases. A <span class="emphasis"><em>database</em></span> is a collection of
	records, each of which has a key and a value. The keys and values
	are stored in a selected format, which defines the syntax of the
	stored data. Two examples of formats are Java serialization format
	and tuple format. In a given database, all keys have the same
	format and all values have the same format.
</p>
      <p>
    The <tt class="classname">SampleDatabase</tt> class is extended to open and close
	the three databases. The following additional class members are
	needed.
</p>
      <a id="cb_sampledatabase3"></a>
      <pre class="programlisting">public class SampleDatabase
{
    ...
<b class="userinput"><tt>    private static final String SUPPLIER_STORE = "supplier_store";
    private static final String PART_STORE = "part_store";
    private static final String SHIPMENT_STORE = "shipment_store";</tt></b>
    ...
<b class="userinput"><tt>    private Database supplierDb;
    private Database partDb;
    private Database shipmentDb;</tt></b>
    ...
} </pre>
      <p>
    For each database there is a database name constant and a
	<tt class="classname">Database</tt> object.
</p>
      <p>
    The following statements open the three databases by
	constructing a Database object.
</p>
      <a id="cb_java_sampledatabase4"></a>
      <pre class="programlisting">    public SampleDatabase(String homeDirectory)
        throws DatabaseException, FileNotFoundException
    {
        ...
        DatabaseConfig dbConfig = new DatabaseConfig();
        dbConfig.setTransactional(true);
        dbConfig.setAllowCreate(true);
        dbConfig.setType(DatabaseType.BTREE);
        ...
<b class="userinput"><tt>        partDb = env.openDatabase(null, PART_STORE, null, dbConfig);
        supplierDb = env.openDatabase(null, SUPPLIER_STORE, null, dbConfig);
        shipmentDb = env.openDatabase(null, SHIPMENT_STORE, null, dbConfig);</tt></b>
        ...
    } </pre>
      <p>
    The database configuration object that was used previously for
	opening the catalog database is reused for opening the three
	databases above. The databases are created if they don't already
	exist. The parameters of the <tt class="methodname">openDatabase()</tt> method were
	described earlier when the class catalog database was opened.
</p>
      <p>
    The following statements close the three databases.
</p>
      <a id="cb_close2"></a>
      <pre class="programlisting">    public void close()
        throws DatabaseException
    {
<b class="userinput"><tt>        partDb.close();
        supplierDb.close();
        shipmentDb.close();</tt></b>
        javaCatalog.close();
        env.close();
    } </pre>
      <p>
    All databases, including the catalog database, must be closed
	before closing the environment.
</p>
      <p>
    The following getter methods return the databases for use by
	other classes in the example program.
</p>
      <a id="cb_sampledatabase_getters"></a>
      <pre class="programlisting">public class SampleDatabase
{
    ...
<b class="userinput"><tt>    public final Database getPartDatabase()
    {
        return partDb;
    }

    public final Database getSupplierDatabase()
    {
        return supplierDb;
    }

    public final Database getShipmentDatabase()
    {
        return shipmentDb;
    }</tt></b>
    ...
}</pre>
    </div>
    <div class="navfooter">
      <hr />
      <table width="100%" summary="Navigation footer">
        <tr>
          <td width="40%" align="left"><a accesskey="p" href="openclasscatalog.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="createbindingscollections.html">Next</a></td>
        </tr>
        <tr>
          <td width="40%" align="left" valign="top">
		Opening and Closing the Class Catalog
	 </td>
          <td width="20%" align="center">
            <a accesskey="h" href="index.html">Home</a>
          </td>
          <td width="40%" align="right" valign="top"> 
		Creating Bindings and Collections
	</td>
        </tr>
      </table>
    </div>
  </body>
</html>