summaryrefslogtreecommitdiff
path: root/docs/gsg/JAVA/dbprops.html
blob: 1d48b1c0ec54248361dfb6591e7b878af05c5dd6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
<?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>Database Properties</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" />
    <link rel="up" href="databases.html" title="Chapter 7. Databases" />
    <link rel="prev" href="coredbclose.html" title="Closing Databases" />
    <link rel="next" href="DBAdmin.html" title="Administrative Methods" />
  </head>
  <body>
    <div xmlns="" class="navheader">
      <div class="libver">
        <p>Library Version 12.1.6.1</p>
      </div>
      <table width="100%" summary="Navigation header">
        <tr>
          <th colspan="3" align="center">Database Properties</th>
        </tr>
        <tr>
          <td width="20%" align="left"><a accesskey="p" href="coredbclose.html">Prev</a> </td>
          <th width="60%" align="center">Chapter 7. Databases</th>
          <td width="20%" align="right"> <a accesskey="n" href="DBAdmin.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="dbprops"></a>Database Properties</h2>
          </div>
        </div>
      </div>
      <p>You can set database properties using the <code class="classname">DatabaseConfig</code>
    class. For each of the properties that you can set, there is a
    corresponding getter method. Also, you can always retrieve the
    <code class="classname">DatabaseConfig</code> object used by your database using
    the <code class="methodname">Database.getConfig()</code> method.</p>
      <p>
        There are a large number of properties that you can set using this
        class (see the javadoc for a complete listing). From the perspective of
        this manual, some of the more interesting properties are:
    </p>
      <div class="itemizedlist">
        <ul type="disc">
          <li>
            <p>
              <code class="methodname">DatabaseConfig.setAllowCreate()</code>
            </p>
            <p>If <code class="literal">true</code>, the database is created when it is
        opened. If false, the database open fails if the database does not
        exist. This property has no meaning if the database currently exists.
        Default is <code class="literal">false</code>.</p>
          </li>
          <li>
            <p>
              <code class="methodname">DatabaseConfig.setBtreeComparator()</code>
            </p>
            <p>Sets the class that is used to compare the keys found on two
        database records. This class is used to determine the sort order for
        two records in the database. By default, byte for byte comparison is
        used.
        For more information, see 
        
        <span><a class="xref" href="btree.html#comparators" title="Setting Comparison Functions">Setting Comparison Functions</a>.</span>
        </p>
          </li>
          <li>
            <p>
              <code class="methodname">DatabaseConfig.setDuplicateComparator()</code>
            </p>
            <p>
            Sets the class that is used to compare two duplicate records in
            the database.  For more information, see 
            
            <span><a class="xref" href="btree.html#comparators" title="Setting Comparison Functions">Setting Comparison Functions</a>.</span>
        </p>
          </li>
          <li>
            <p>
              <code class="methodname">DatabaseConfig.setSortedDuplicates()</code>
            </p>
            <p>If <code class="literal">true</code>, duplicate records are allowed in the
        database.  If this value is <code class="literal">false</code>, then putting a duplicate record into the database
        results in an error return from the put call.
        Note that this property can be set only at database creation time. Default is <code class="literal">false</code>. 
        </p>
            <p>
            Note that your database must not support duplicates if it is to be associated with one or more 
            secondary indices. Secondaries are described in <a class="xref" href="indexes.html" title="Chapter 10. Secondary Databases">Secondary Databases</a>.
        </p>
          </li>
          <li>
            <p>
              <code class="methodname">DatabaseConfig.setExclusiveCreate()</code>
            </p>
            <p>If <code class="literal">true</code>, the database open fails if the
        database currently exists. That is, the open must result in the
        creation of a new database. Default is <code class="literal">false</code>.</p>
          </li>
          <li>
            <p>
              <code class="methodname">DatabaseConfig.setReadOnly()</code>
            </p>
            <p>If true, the database is opened for read activities only.
        Default is <code class="literal">false</code>.</p>
          </li>
          <li>
            <p>
              <code class="methodname">DatabaseConfig.setTruncate()</code>
            </p>
            <p>If true, the database is truncated; that is, it is emptied of all
        content.
        </p>
          </li>
          <li>
            <p>
              <code class="methodname">DatabaseConfig.setType()</code>
            </p>
            <p>Identifies the type of database that you want to create. This
        manual will exclusively use <code class="literal">DatabaseType.BTREE</code>. 
        </p>
          </li>
        </ul>
      </div>
      <p>
        In addition to these, there are also methods that allow you to
        control the IO stream used for error reporting purposes. 
        These are described later in this manual.
    </p>
      <p>For example:</p>
      <a id="java_db3"></a>
      <pre class="programlisting">package db.GettingStarted;

import com.sleepycat.db.Database;
import com.sleepycat.db.DatabaseConfig;
import com.sleepycat.db.DatabaseException;
import com.sleepycat.db.DatabaseType;

import java.io.FileNotFoundException;

...
Database myDatabase = null;
try {
    DatabaseConfig dbConfig = new DatabaseConfig();
    dbConfig.setAllowCreate(true);
    dbConfig.setSortedDuplicates(true);
    dbConfig.setType(DatabaseType.BTREE);
    myDatabase = new Database("sampleDatabase.db",
                              null,
                              dbConfig); 
} catch (DatabaseException dbe) {
    // Exception handling goes here.
} catch (FileNotFoundException fnfe) {
    // Exception handling goes here
}</pre>
    </div>
    <div class="navfooter">
      <hr />
      <table width="100%" summary="Navigation footer">
        <tr>
          <td width="40%" align="left"><a accesskey="p" href="coredbclose.html">Prev</a> </td>
          <td width="20%" align="center">
            <a accesskey="u" href="databases.html">Up</a>
          </td>
          <td width="40%" align="right"> <a accesskey="n" href="DBAdmin.html">Next</a></td>
        </tr>
        <tr>
          <td width="40%" align="left" valign="top">Closing Databases </td>
          <td width="20%" align="center">
            <a accesskey="h" href="index.html">Home</a>
          </td>
          <td width="40%" align="right" valign="top"> Administrative Methods</td>
        </tr>
      </table>
    </div>
  </body>
</html>