提交 24e04f58 authored 作者: Thomas Mueller's avatar Thomas Mueller

Documentation improvements

上级 1256ab7b
......@@ -94,7 +94,6 @@ In this case, each block of rows is sorted using quick sort, then written to dis
when reading the data, the blocks are merged together.
</p>
<br />
<h2 id="large_objects">Large Objects</h2>
<h3>Storing and Reading Large Objects</h3>
......@@ -130,7 +129,6 @@ operations. If you store many large compressible values such as XML, HTML, text,
then compressing can save a lot of disk space (sometimes more than 50%), and read operations may even be faster.
</p>
<br />
<h2 id="linked_tables">Linked Tables</h2>
<p>
This database supports linked tables, which means tables that don't exist in the current database but
......@@ -160,7 +158,6 @@ The statement <a href="grammar.html#create_linked_table" class="notranslate" >CR
supports an optional schema name parameter.
</p>
<br />
<h2 id="transaction_isolation">Transaction Isolation</h2>
<p>
Transaction isolation is provided for all data manipulation language (DML) statements.
......@@ -232,7 +229,6 @@ connection will get a lock timeout exception. The lock timeout can be set indivi
for each connection.
</p>
<br />
<h2 id="mvcc">Multi-Version Concurrency Control (MVCC)</h2>
<p>
The MVCC feature allows higher concurrency than using (table level or row level) locks.
......@@ -259,7 +255,6 @@ the complete undo log must fit in memory when using multi-version concurrency
(the setting <code>MAX_MEMORY_UNDO</code> has no effect).
</p>
<br />
<h2 id="clustering">Clustering / High Availability</h2>
<p>
This database supports a simple clustering / high availability mechanism. The architecture is:
......@@ -342,7 +337,6 @@ Those functions should not be used directly in modifying statements
in read-only statements and the result can then be used for modifying statements.
</p>
<br />
<h2 id="two_phase_commit">Two Phase Commit</h2>
<p>
The two phase commit protocol is supported. 2-phase-commit works as follows:
......@@ -363,7 +357,6 @@ The two phase commit protocol is supported. 2-phase-commit works as follows:
</li><li>The database needs to be closed and re-opened to apply the changes
</li></ul>
<br />
<h2 id="compatibility">Compatibility</h2>
<p>
This database is (up to a certain point) compatible to other databases such as HSQLDB, MySQL and PostgreSQL.
......@@ -392,7 +385,6 @@ Certain words of this list are keywords because they are functions that can be u
for example <code>CURRENT_TIMESTAMP</code>.
</p>
<br />
<h2 id="standards_compliance">Standards Compliance</h2>
<p>
This database tries to be as much standard compliant as possible. For the SQL language, ANSI/ISO is the main
......@@ -401,7 +393,6 @@ Unfortunately, the standard documentation is not freely available. Another probl
are not standardized. Whenever this is the case, this database tries to be compatible to other databases.
</p>
<br />
<h2 id="windows_service">Run as Windows Service</h2>
<p>
Using a native wrapper / adapter, Java applications can be run as a Windows Service.
......@@ -445,7 +436,6 @@ To uninstall the service, double click on <code>5_uninstall_service.bat</code>.
If successful, a command prompt window will pop up and disappear immediately. If not, a message will appear.
</p>
<br />
<h2 id="odbc_driver">ODBC Driver</h2>
<p>
This database does not come with its own ODBC driver at this time,
......@@ -552,7 +542,6 @@ Also, it is currently not possible to use encrypted SSL connections.
Therefore the ODBC driver should not be used where security is important.
</p>
<br />
<h2 id="microsoft_dot_net">Using H2 in Microsoft .NET</h2>
<p>
The database can be used from Microsoft .NET even without using Java, by using IKVM.NET.
......@@ -602,7 +591,6 @@ class Test
}
</pre>
<br />
<h2 id="acid">ACID</h2>
<p>
In the database world, ACID stands for:
......@@ -642,7 +630,6 @@ If durability is required for all possible cases of hardware failure, clustering
such as the H2 clustering mode.
</p>
<br />
<h2 id="durability_problems">Durability Problems</h2>
<p>
Complete durability means all committed transaction survive a power failure.
......@@ -728,7 +715,6 @@ none of the databases contains all the records that the listener computer knows
consult the source code of the listener and test application.
</p>
<br />
<h2 id="using_recover_tool">Using the Recover Tool</h2>
<p>
The <code>Recover</code> tool can be used to extract the contents of a data file, even if the database is corrupted.
......@@ -753,7 +739,6 @@ however it does not automatically apply those changes. Usually, many of those ch
applied in the database.
</p>
<br />
<h2 id="file_locking_protocols">File Locking Protocols</h2>
<p>
Whenever a database is opened, a lock file is created to signal other processes
......@@ -836,7 +821,6 @@ share, two processes (running on different computers) could still open the same
database files, if they do not have a direct TCP/IP connection.
</p>
<br />
<h2 id="sql_injection">Protection against SQL Injection</h2>
<h3>What is SQL Injection</h3>
<p>
......@@ -922,7 +906,6 @@ It is not required to create a constant for the number 0 as there is already a b
SELECT * FROM USERS WHERE LENGTH(PASSWORD)=ZERO();
</pre>
<br />
<h2 id="remote_access">Protection against Remote Access</h2>
<p>
By default this database does not allow others to connect when starting the H2 Console,
......@@ -934,7 +917,6 @@ users can not create new databases or access existing databases with weak passwo
ensure the existing accessible databases are protected using a strong password.
</p>
<br />
<h2 id="restricting_classes">Restricting Class Loading and Usage</h2>
<p>
By default there is no restriction on loading classes and executing Java code for admins.
......@@ -963,7 +945,6 @@ trigger classes, user-defined functions, user-defined aggregate functions, and J
driver classes (with the exception of the H2 driver) when using the H2 Console.
</p>
<br />
<h2 id="security_protocols">Security Protocols</h2>
<p>
The following paragraphs document the security protocols used in this database.
......@@ -1074,7 +1055,6 @@ There is a default self-certified certificate to support an easy starting point,
custom certificates are supported as well.
</p>
<br />
<h2 id="ssl_tls_connections">SSL/TLS Connections</h2>
<p>
Remote SSL/TLS connections are supported using the Java Secure Socket Extension
......@@ -1092,7 +1072,6 @@ for more information.
To disable anonymous SSL, set the system property <code>h2.enableAnonymousSSL</code> to false.
</p>
<br />
<h2 id="uuid">Universally Unique Identifiers (UUID)</h2>
<p>
This database supports UUIDs. Also supported is a function to create new UUIDs using
......@@ -1135,7 +1114,6 @@ one's annual risk of being hit by a meteorite is estimated to be one chance in 1
that means the probability is about 0.000'000'000'06.
</p>
<br />
<h2 id="system_properties">Settings Read from System Properties</h2>
<p>
Some settings of the database can be set on the command line using
......@@ -1155,7 +1133,6 @@ For a complete list of settings, see
<a href="../javadoc/org/h2/constant/SysProperties.html">SysProperties</a>.
</p>
<br />
<h2 id="server_bind_address">Setting the Server Bind Address</h2>
<p>
Usually server sockets accept connections on any/all local addresses.
......@@ -1165,7 +1142,6 @@ This setting is used for both regular server sockets and for SSL server sockets.
IPv4 and IPv6 address formats are supported.
</p>
<br />
<h2 id="file_system">Pluggable File System</h2>
<p>
This database supports a pluggable file system API. The file system implementation
......@@ -1187,7 +1163,6 @@ To register a new file system, extend the classes <code>org.h2.store.fs.FileSyst
and call the method <code>FileSystem.register</code> before using it.
</p>
<br />
<h2 id="limits_limitations">Limits and Limitations</h2>
<p>
This database has the following known limitations:
......@@ -1226,7 +1201,6 @@ OR X = 2 OR X = 2 OR X = 2 OR X = 2 OR X = 2
or the data type documentation of this database.
</li></ul>
<br />
<h2 id="glossary_links">Glossary and Links</h2>
<table>
<tr>
......
......@@ -33,14 +33,12 @@ Build
<a href="#automated">
Automated Build</a><br />
<br />
<h2 id="portability">Portability</h2>
<p>
This database is written in Java and therefore works on many platforms.
It can also be compiled to a native executable using GCJ.
</p>
<br />
<h2 id="environment">Environment</h2>
<p>
A Java Runtime Environment (JRE) version 1.5 or higher is required to run this database.
......@@ -63,7 +61,6 @@ Newer version or compatible software works too.
</li><li><a href="http://maven.apache.org">Maven 2.0.9</a>
</li></ul>
<br />
<h2 id="building">Building the Software</h2>
<p>
You need to install a JDK, for example the Sun JDK version 1.5 or 1.6.
......@@ -93,7 +90,6 @@ To switch the source code to the installed version of Java, run:
build switchSource
</pre>
<br />
<h2 id="build_targets">Build Targets</h2>
<p>
The build system can generate smaller jar files as well. The following targets are currently supported:
......@@ -115,7 +111,6 @@ To create the file <code>h2client.jar</code>, go to the directory <code>h2</code
build jarClient
</pre>
<br />
<h2 id="maven2">Using Maven 2</h2>
<h3>Using a Central Repository</h3>
<p>
......@@ -153,7 +148,6 @@ Afterwards, you can include the database in your Maven 2 project as a dependency
&lt;/dependency&gt;
</pre>
<br />
<h2 id="translating">Translating</h2>
<p>
The translation of this software is split into the following parts:
......@@ -172,7 +166,6 @@ The web site translation is automated as well,
using <code>build docs</code>.
</p>
<br />
<h2 id="providing_patches">Providing Patches</h2>
<p>
If you like to provide patches, please consider the following guidelines to simplify merging them:
......@@ -213,7 +206,6 @@ multiple-licensed under the H2 License, version 1.0, and under the
Eclipse Public License, version 1.0 (http://h2database.com/html/license.html)."
</p>
<br />
<h2 id="automated">Automated Build</h2>
<p>
This build process is automated and runs regularly.
......
......@@ -18,7 +18,8 @@ Change Log
<h1>Change Log</h1>
<h2>Next Version (unreleased)</h2>
<ul><li>-
<ul><li>The documentation is no longer available in Japanese because the
translation was too much out of sync. Please use the Google translation instead.
</li></ul>
<h2>Version 1.2.121 (2009-10-11)</h2>
......
......@@ -23,7 +23,6 @@ Data Types
</p>
<c:forEach var="item" items="dataTypes">
<br />
<h3 id="${item.link}" class="notranslate">${item.topic}</h3>
<pre>
${item.syntax}
......
......@@ -40,7 +40,6 @@ Frequently Asked Questions
<a href="#translate">
How to Translate this Project?</a><br />
<br />
<h3 id="known_bugs">Are there Known Bugs? When is the Next Release?</h3>
<p>
Usually, bugs get fixes as they are found. There is a release every few weeks.
......@@ -64,14 +63,12 @@ Here is the list of known and confirmed issues:
This problem is solved in Install4j 4.1.4.
</li></ul>
<br />
<h3 id="open_source">Is this Database Engine Open Source?</h3>
<p>
Yes. It is free to use and distribute, and the source code is included.
See also under license.
</p>
<br />
<h3 id="query_slow">My Query is Slow</h3>
<p>
Slow <code>SELECT</code> (or <code>DELETE, UPDATE, MERGE</code>)
......@@ -87,13 +84,12 @@ statement can have multiple reasons. Follow this checklist:
</li>
</ul>
<br />
<h3 id="create_database">How to Create a New Database?</h3>
<p>
By default, a new database is automatically created if it does not yet exist.
See <a href="tutorial.html#creating_new_databases">Creating New Databases</a>.
</p>
<br />
<h3 id="connect">How to Connect to a Database?</h3>
<p>
The database driver is <code>org.h2.Driver</code>,
......@@ -105,7 +101,6 @@ Class.forName("org.h2.Driver");
Connection conn = DriverManager.getConnection("jdbc:h2:~/test", "sa", "");
</pre>
<br />
<h3 id="database_files">Where are the Database Files Stored?</h3>
<p>
When using database URLs like <code>jdbc:h2:~/test</code>,
......@@ -123,13 +118,11 @@ fully qualified directory name (and for Windows, drive name).
Example: <code>jdbc:h2:file:C:/data/test</code>
</p>
<br />
<h3 id="size_limit">What is the Size Limit (Maximum Size) of a Database?</h3>
<p>
See <a href="advanced.html#limits_limitations">Limits and Limitations</a>.
</p>
<br />
<h3 id="reliable">Is it Reliable?</h3>
<p>
That is not easy to say. It is still a quite new product. A lot of tests have been written,
......@@ -184,7 +177,6 @@ See also: <a href="grammar.html#set_log" class="notranslate">SET LOG</a>. This p
using the new 'page store' mechanism (currently beta).
</p>
<br />
<h3 id="slow_open">Why is Opening my Database Slow?</h3>
<p>
If it takes a long time to open a database, in most cases it was not closed the last time.
......@@ -207,7 +199,6 @@ Other possible reasons are: the database is very big (many GB), or contains link
that are slow to open.
</p>
<br />
<h3 id="gcj">Is the GCJ Version Stable? Faster?</h3>
<p>
The GCJ version is not as stable as the Java version.
......@@ -217,7 +208,6 @@ Currently, the GCJ version is also slower than when using the Sun VM.
However, the startup of the GCJ version is faster than when using a VM.
</p>
<br />
<h3 id="translate">How to Translate this Project?</h3>
<p>
For more information, see
......
......@@ -29,8 +29,8 @@ Features
Database URL Overview</a><br />
<a href="#embedded_databases">
Connecting to an Embedded (Local) Database</a><br />
<a href="#memory_only_databases">
Memory-Only Databases</a><br />
<a href="#in_memory_databases">
In-Memory Databases</a><br />
<a href="#file_encryption">
Database Files Encryption</a><br />
<a href="#database_file_locking">
......@@ -84,7 +84,6 @@ Features
<a href="#cache_settings">
Cache Settings</a><br />
<br />
<h2 id="feature_list">Feature List</h2>
<h3>Main Features</h3>
<ul>
......@@ -157,7 +156,6 @@ encrypted using AES-256 and XTEA encryption algorithms
</li><li>Well tested (high code coverage, randomized stress tests)
</li></ul>
<br />
<h2 id="comparison">Comparison to Other Database Engines</h2>
<table><tr>
......@@ -388,14 +386,12 @@ It looks like the development of this database has stopped. The last release was
It looks like the development of this database has stopped. The last release was August 2004
</p>
<br />
<h2 id="products_work_with">H2 in Use</h2>
<p>
For a list of applications that work with or use H2, see:
<a href="links.html">Links</a>.
</p>
<br />
<h2 id="connection_modes">Connection Modes</h2>
<p>
The following connection modes are supported:
......@@ -450,7 +446,6 @@ it's an local or remote connection) can do so using the exact same database URL.
<img src="images/connection-mode-mixed.png"
alt="The database and the server is running inside the application; another application connects remotely" />
<br />
<h2 id="database_url">Database URL Overview</h2>
<p>
This database supports multiple connection modes and connection settings.
......@@ -467,11 +462,11 @@ This is achieved using different database URLs. Settings in the URLs are not cas
</td>
</tr>
<tr>
<td><a href="#memory_only_databases">In-memory (private)</a></td>
<td><a href="#in_memory_databases">In-memory (private)</a></td>
<td class="notranslate">jdbc:h2:mem:</td>
</tr>
<tr>
<td><a href="#memory_only_databases">In-memory (named)</a></td>
<td><a href="#in_memory_databases">In-memory (named)</a></td>
<td class="notranslate">
jdbc:h2:mem:&lt;databaseName&gt;<br />
jdbc:h2:mem:test_mem
......@@ -591,7 +586,6 @@ This is achieved using different database URLs. Settings in the URLs are not cas
</tr>
</table>
<br />
<h2 id="embedded_databases">Connecting to an Embedded (Local) Database</h2>
<p>
The database URL for connecting to a local database is
......@@ -604,24 +598,23 @@ The database name must be at least three characters long
To point to the user home directory, use <code>~/</code>, as in: <code>jdbc:h2:~/test</code>.
</p>
<br />
<h2 id="memory_only_databases">Memory-Only Databases</h2>
<h2 id="in_memory_databases">In-Memory Databases</h2>
<p>
For certain use cases (for example: rapid prototyping, testing, high performance
operations, read-only databases), it may not be required to persist data, or persist changes to the data.
This database supports the memory-only mode, where the data is not persisted.
This database supports the in-memory mode, where the data is not persisted.
</p><p>
In some cases, only one connection to a memory-only database is required.
In some cases, only one connection to a in-memory database is required.
This means the database to be opened is private. In this case, the database URL is
<code>jdbc:h2:mem:</code> Opening two connections within the same virtual machine
means opening two different (private) databases.
</p><p>
Sometimes multiple connections to the same memory-only database are required.
Sometimes multiple connections to the same in-memory database are required.
In this case, the database URL must include a name. Example: <code>jdbc:h2:mem:db1</code>.
Accessing the same database in this way only works within the same virtual machine and
class loader environment.
</p><p>
It is also possible to access a memory-only database remotely
In-memory can be accessed remotely
(or from multiple processes in the same machine) using TCP/IP or SSL/TLS.
An example database URL is: <code>jdbc:h2:tcp://localhost/mem:db1</code>.
</p><p>
......@@ -632,7 +625,6 @@ To keep the content of an in-memory database as long as the virtual machine is a
<code>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</code>.
</p>
<br />
<h2 id="file_encryption">Database Files Encryption</h2>
<p>
The database files can be encrypted. Two encryption algorithms are supported: AES and XTEA.
......@@ -675,7 +667,6 @@ with the file password <code>filepwd</code> and the encryption algorithm AES:
java -cp h2*.jar org.h2.tools.ChangeFileEncryption -dir ~ -db test -cipher AES -encrypt filepwd
</pre>
<br />
<h2 id="database_file_locking">Database File Locking</h2>
<p>
Whenever a database is opened, a lock file is created to signal other processes
......@@ -714,7 +705,6 @@ For more information about the algorithms, see
<a href="advanced.html#file_locking_protocols">Advanced / File Locking Protocols</a>.
</p>
<br />
<h2 id="database_only_if_exists">Opening a Database Only if it Already Exists</h2>
<p>
By default, when an application calls <code>DriverManager.getConnection(url, ...)</code>
......@@ -729,7 +719,6 @@ The complete URL may look like this:
String url = "jdbc:h2:/data/sample;IFEXISTS=TRUE";
</pre>
<br />
<h2 id="closing_a_database">Closing a Database</h2>
<h3>Delayed Database Closing</h3>
......@@ -752,7 +741,6 @@ This setting is persistent and can be set by an administrator only.
It is possible to set the value in the database URL: <code>jdbc:h2:~/test;DB_CLOSE_DELAY=10</code>.
</p>
<br />
<h3 id="do_not_close_on_exit">Don't Close a Database when the VM Exits</h3>
<p>
By default, a database is closed when the last connection is closed. However, if it is never closed,
......@@ -768,7 +756,6 @@ The database URL to disable database closing on exit is:
String url = "jdbc:h2:~/test;DB_CLOSE_ON_EXIT=FALSE";
</pre>
<br />
<h2 id="log_index_changes">Log Index Changes</h2>
<p>
Usually, changes to the index file are not logged for performance.
......@@ -784,7 +771,6 @@ This setting should be specified when connecting.
The update performance of the database will be reduced when using this option.
</p>
<br />
<h2 id="ignore_unknown_settings">Ignore Unknown Settings</h2>
<p>
Some applications (for example OpenOffice.org Base) pass some additional parameters
......@@ -797,7 +783,6 @@ saying the parameter is not supported. It is possible to ignored such parameters
<code>;IGNORE_UNKNOWN_SETTINGS=TRUE</code> to the database URL.
</p>
<br />
<h2 id="other_settings">Changing Other Settings when Opening a Connection</h2>
<p>
In addition to the settings already described,
......@@ -807,7 +792,6 @@ same as executing the statement <code>SET setting value</code> just after
connecting. For a list of supported settings, see <a href="grammar.html">SQL Grammar</a>.
</p>
<br />
<h2 id="custom_access_mode">Custom File Access Mode</h2>
<p>
Usually, the database opens log, data and index files with the access mode
......@@ -828,7 +812,6 @@ For more information see <a href="advanced.html#durability_problems">Durability
On many operating systems the access mode <code>rws</code> does not guarantee that the data is written to the disk.
</p>
<br />
<h2 id="multiple_connections">Multiple Connections</h2>
<h3>Opening Multiple Databases at the Same Time</h3>
......@@ -914,7 +897,6 @@ The initial lock timeout (that is the timeout used for new connections) can be s
<code>SET DEFAULT_LOCK_TIMEOUT &lt;milliseconds&gt;</code>. The default lock timeout is persistent.
</p>
<br />
<h2 id="database_file_layout">Database File Layout</h2>
<p>
There are a number of files created for persistent databases. Unlike some other databases,
......@@ -1021,7 +1003,6 @@ automatically if they don't exist.
To backup data while the database is running, the SQL command <code>SCRIPT</code> can be used.
</p>
<br />
<h2 id="logging_recovery">Logging and Recovery</h2>
<p>
Whenever data is modified in the database and those changes are committed, the changes are logged
......@@ -1046,7 +1027,6 @@ must contain <code>;RECOVER=1</code>, as in
the summary (object allocation table) is not read in this case, so opening the database takes longer.
</p>
<br />
<h2 id="compatibility">Compatibility</h2>
<p>
All database engines behave a little bit different. Where possible, H2 supports the ANSI SQL standard,
......@@ -1169,7 +1149,6 @@ or the SQL statement <code>SET MODE PostgreSQL</code>.
<code>OID</code> are supported.
</li></ul>
<br />
<h2 id="auto_reconnect">Auto-Reconnect</h2>
<p>
The auto-reconnect feature causes the JDBC driver to reconnect to
......@@ -1183,7 +1162,6 @@ The contents of the system table <code>INFORMATION_SCHEMA.SESSION_STATE</code>
contains all client side state that is re-created.
</p>
<br />
<h2 id="auto_mixed_mode">Automatic Mixed Mode</h2>
<p>
Multiple processes can access the same database without having to start the server manually.
......@@ -1223,7 +1201,6 @@ DriverManager.getConnection("jdbc:h2:/data/test;AUTO_SERVER=TRUE");
DriverManager.getConnection("jdbc:h2:/data/test;AUTO_SERVER=TRUE");
</pre>
<br />
<h2 id="trace_options">Using the Trace Options</h2>
<p>
To find problems in an application, it is sometimes good to see what database operations
......@@ -1304,7 +1281,6 @@ If this is the case, the source code needs to be split in multiple methods.
The password is not listed in the trace file and therefore not included in the source code.
</p>
<br />
<h2 id="other_logging">Using Other Logging APIs</h2>
<p>
By default, this database uses its own native 'trace' facility. This facility is called 'trace' and not
......@@ -1333,7 +1309,6 @@ To use SLF4J, all required jar files need to be in the classpath.
If it does not work, check the file <code>&lt;database&gt;.trace.db</code> for error messages.
</p>
<br />
<h2 id="read_only">Read Only Databases</h2>
<p>
If the database files are read-only, then the database is read-only as well.
......@@ -1347,7 +1322,6 @@ by calling <code>Connection.isReadOnly()</code>
or by executing the SQL statement <code>CALL READONLY()</code>.
</p>
<br />
<h2 id="database_in_zip">Read Only Databases in Zip or Jar File</h2>
<p>
To create a read-only database in a zip file, first create a regular persistent database, and then create a backup.
......@@ -1373,7 +1347,6 @@ is not read in memory; therefore large databases are supported as well. The same
a regular database.
</p>
<br />
<h2 id="low_disk_space">Graceful Handling of Low Disk Space Situations</h2>
<p>
If the database needs more disk space, it calls the database event listener if one is installed.
......@@ -1392,7 +1365,6 @@ is corrupted, then the database can be opened by specifying a database event lis
The exceptions are logged, but opening the database will continue.
</p>
<br />
<h2 id="computed_columns">Computed Columns / Function Based Index</h2>
<p>
Function indexes are not directly supported by this database, but they can be emulated
......@@ -1418,7 +1390,6 @@ INSERT INTO ADDRESS(ID, NAME) VALUES(1, 'Miller');
SELECT * FROM ADDRESS WHERE UPPER_NAME='MILLER';
</pre>
<br />
<h2 id="multi_dimensional">Multi-Dimensional Indexes</h2>
<p>
A tool is provided to execute efficient multi-dimension (spatial) range queries.
......@@ -1441,7 +1412,6 @@ For an example how to use the tool, please have a look at the sample code provid
in <code>TestMultiDimension.java</code>.
</p>
<br />
<h2 id="passwords">Using Passwords</h2>
<h3>Using Secure Passwords</h3>
......@@ -1514,7 +1484,6 @@ Connection conn = DriverManager.
The settings in the URL override the settings passed as a separate parameter.
</p>
<br />
<h2 id="user_defined_functions">User-Defined Functions and Stored Procedures</h2>
<p>
In addition to the built-in functions, this database supports user-defined Java functions.
......@@ -1639,7 +1608,6 @@ CREATE ALIAS MATRIX FOR "org.h2.samples.Function.getMatrix";
SELECT * FROM MATRIX(4) ORDER BY X, Y;
</pre>
<br />
<h2 id="triggers">Triggers</h2>
<p>
This database supports Java triggers that are called before or after a row is updated, inserted or deleted.
......@@ -1674,7 +1642,6 @@ CREATE TRIGGER INV_INS AFTER INSERT ON INVOICE
The trigger can be used to veto a change by throwing a <code>SQLException</code>.
</p>
<br />
<h2 id="compacting">Compacting a Database</h2>
<p>
Empty space in the database file is re-used automatically.
......@@ -1699,7 +1666,6 @@ The commands <code>SCRIPT / RUNSCRIPT</code> can be used as well to create a bac
of a database and re-build the database from the script.
</p>
<br />
<h2 id="cache_settings">Cache Settings</h2>
<p>
The database keeps most frequently used data and index pages in the main memory.
......
......@@ -17,12 +17,16 @@ Initial Developer: H2 Group
<div class="menu">
<img src="images/h2-logo.png" alt="H2 Logo" onclick="document.location='main.html'" width="136" height="74"/>
</div>
<form action="submit" onsubmit="return goFirst();">
<table width="100%" class="search">
<tr class="search">
<td class="search" colspan="2">
<a href="frame.html"><img src="images/language_en.gif" alt="English" width="23" height="15"/></a>
<a href="frame_ja.html"><img src="images/language_ja.gif" alt="Japanese" width="23" height="15"/></a>
<!-- translate
<a href="http://translate.google.com/translate?u=http%3A%2F%2Fh2database.com"
onclick="javascript:document.getElementById('translate').style.display='';return false;">Translate</a>
<div id = "translate" style="display:none"><div id = "google_translate_element"></div></div>
translate -->
</td>
</tr>
<tr class="search">
......@@ -52,6 +56,7 @@ Initial Developer: H2 Group
<div class="menu">
<b><a href="main.html"> Home </a></b><br />
<a href="quickstart.html"> Quickstart </a><br />
<a href="cheatSheet.html"> Cheat Sheet </a><br />
<a href="installation.html"> Installation </a><br />
<a href="tutorial.html"> Tutorial </a><br />
<a href="features.html"> Features </a><br />
......@@ -76,18 +81,6 @@ Initial Developer: H2 Group
<a href="license.html"> License </a><br />
<br />
<!-- translate
<a href="http://translate.google.com/translate?u=http%3A%2F%2Fh2database.com"
onclick="javascript:document.getElementById('translate').style.display='';return false;">Translate</a>
<div id = "translate" style="display:none"><div id = "google_translate_element"></div></div>
<script type="text/javascript">
function googleTranslateElementInit() {
new google.translate.TranslateElement({pageLanguage: 'en'}, 'google_translate_element');
}
</script>
<script type="text/javascript" src="http://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
translate -->
</div>
</div>
</td>
......@@ -101,6 +94,8 @@ translate -->
</div></td></tr></table>
<script type="text/javascript" src="index.js"></script>
<script type="text/javascript" src="search.js"></script>
<script type="text/javascript">function googleTranslateElementInit() { new google.translate.TranslateElement({pageLanguage: 'en'}, 'google_translate_element'); } </script>
<!-- } -->
</body></html>
\ No newline at end of file
......@@ -53,7 +53,6 @@ Functions
</p>
<c:forEach var="item" items="functionsAll">
<br />
<h3 id="${item.link}" class="notranslate">${item.topic}</h3>
<pre>
${item.syntax}
......
......@@ -51,7 +51,6 @@ SQL Grammar
</p>
<c:forEach var="item" items="commands">
<br />
<h3 id="${item.link}" class="notranslate">${item.topic}</h3>
<pre>
${item.syntax}
......@@ -62,7 +61,6 @@ ${item.syntax}
</c:forEach>
<c:forEach var="item" items="otherGrammar">
<br />
<h3 id="${item.link}" class="notranslate">${item.topic}</h3>
<pre>
${item.syntax}
......@@ -72,7 +70,6 @@ ${item.syntax}
<p class="notranslate">${item.example}</p>
</c:forEach>
<br />
<h3 id="information_schema" class="notranslate">Information Schema</h3>
<p>
The system tables in the schema <code>INFORMATION_SCHEMA</code> contain the meta data
......@@ -87,7 +84,6 @@ of all tables in the database as well as the current settings.
</c:forEach>
</table>
<br />
<h3 id="range_table" class="notranslate">Range Table</h3>
<p>
The range table is a dynamic system table that contains all values from a start to an end value.
......
......@@ -27,7 +27,6 @@ History
<a href="#supporters">
Supporters</a><br />
<br />
<h2 id="changelog">Change Log</h2>
<p>
The up-to-date change log is available at
......@@ -36,7 +35,6 @@ http://www.h2database.com/html/changelog.html
</a>
</p>
<br />
<h2 id="roadmap">Roadmap</h2>
<p>
The current roadmap is available at
......@@ -45,7 +43,6 @@ http://www.h2database.com/html/roadmap.html
</a>
</p>
<br />
<h2 id="history">History of this Database Engine</h2>
<p>
The development of H2 was started in May 2004,
......@@ -58,7 +55,6 @@ The name H2 stands for Hypersonic 2; however H2 does not share any code with
Hypersonic SQL or HSQLDB. H2 is built from scratch.
</p>
<br />
<h2 id="why_java">Why Java</h2>
<p>
A few reasons using a Java database are:
......@@ -92,7 +88,6 @@ instead of using the existing libraries. Libraries that are not available in ope
Java implementations (such as Swing) are not used or only used for specific features.
</p>
<br />
<h2 id="supporters">Supporters</h2>
<p>
Many thanks for those who helped by finding and reporting bugs, gave valuable feedback,
......
......@@ -26,7 +26,6 @@ Installation
<a href="#directory_structure">
Directory Structure</a><br />
<br />
<h2 id="requirements">Requirements</h2>
<p>
To run the database, the following minimum software stack is known to work:
......@@ -38,7 +37,6 @@ To run the database, the following minimum software stack is known to work:
</li><li>Mozilla Firefox 1.5 or newer
</li></ul>
<br />
<h2 id="supported_platforms">Supported Platforms</h2>
<p>
As this database is written in Java, it can run on many different platforms.
......@@ -48,13 +46,11 @@ developed and tested on Windows XP and Mac OS X using the Sun JDK 1.5, but it al
works in many other operating systems and using other Java runtime environments.
</p>
<br />
<h2 id="installing">Installing the Software</h2>
<p>
To install the software, run the installer or unzip it to a directory of your choice.
</p>
<br />
<h2 id="directory_structure">Directory Structure</h2>
<p>
After installing, you should get the following directory structure:
......
......@@ -29,7 +29,6 @@ Performance
<a href="#fast_import">
Fast Database Import</a><br />
<br />
<h2 id="performance_comparison">Performance Comparison</h2>
<p>
In many cases H2 is faster than other
......@@ -272,7 +271,6 @@ Here, one (wrapper) connection is opened at the start,
and for each step a new connection is opened and then closed.
</p>
<br />
<h2 id="poleposition_benchmark">PolePosition Benchmark</h2>
<p>
The PolePosition is an open source benchmark. The algorithms are all quite simple.
......@@ -318,7 +316,6 @@ To change that, use the database URL <code>jdbc:h2:file:data/h2/dbbench;DB_CLOSE
Unfortunately, the PolePosition test does not take this into account.
</li></ul>
<br />
<h2 id="application_profiling">Application Profiling</h2>
<h3>Analyze First</h3>
......@@ -345,7 +342,6 @@ run <code>jstack &lt;pid&gt;</code> or <code>kill -QUIT &lt;pid&gt;</code> (Linu
Ctrl+C (Windows).
</p>
<br />
<h2 id="database_profiling">Database Profiling</h2>
<p>
The <code>ConvertTraceFile</code> tool generates SQL statement statistics at the end of the SQL script file.
......@@ -384,7 +380,6 @@ following profiling data (results vary):
-- 0% 100% 0 1 0 SET TRACE_LEVEL_FILE 3;
</pre>
<br />
<h2 id="database_performance_tuning">Database Performance Tuning</h2>
<h3>Use a Modern JVM</h3>
......@@ -521,7 +516,6 @@ Each data type has different storage and performance characteristics:
to work with than <code>INTEGER</code> in most modes.
</li></ul>
<br />
<h2 id="fast_import">Fast Database Import</h2>
<p>
To speed up large imports, consider using the following options temporarily:
......
......@@ -21,7 +21,6 @@ Quickstart
<a href="#h2_console">
The H2 Console Application</a><br />
<br />
<h2 id="embedding">Embedding H2 in an Application</h2>
<p>
This database can be used in embedded mode, or in server mode. To use it in embedded mode, you need to:
......@@ -33,7 +32,6 @@ This database can be used in embedded mode, or in server mode. To use it in embe
</li><li>A new database is automatically created
</li></ul>
<br />
<h2 id="h2_console">The H2 Console Application</h2>
<p>
The Console lets you access a SQL database using a browser interface.
......
......@@ -32,7 +32,8 @@ See also <a href="build.html#providing_patches">Providing Patches</a>.
<ul>
<li>Bugfixes
</li><li>Page store: new storage mechanism
</li><li>[Requires page store] Support large updates (use the transaction log for rollback).
</li><li>[Requires page store] Support large updates (use the transaction log
for rollback instead of persistent UndoLog.file).
</li><li>[Requires page store] Shutdown compact
</li><li>More tests with MULTI_THREADED=1
</li><li>RECOVER=1 should automatically recover, =2 should run the recovery tool if required
......@@ -94,6 +95,7 @@ See also <a href="build.html#providing_patches">Providing Patches</a>.
</li><li>Comparison: pluggable sort order: natural sort
</li><li>Count index range query (count(*) where id between 10 and 20)
</li><li>Support alter table add column if table has views defined
</li><li>Recursive Queries (see details)
</li><li>Eclipse plugin
</li><li>Asynchronous queries to support publish/subscribe: SELECT ... FOR READ WAIT [maxMillisToWait]
</li><li>Fulltext search Lucene: analyzer configuration.
......@@ -186,7 +188,6 @@ See also <a href="build.html#providing_patches">Providing Patches</a>.
</li><li>Read InputStream when executing, as late as possible (maybe only embedded mode). Problem with re-execute.
</li><li>Native fulltext search: min word length; store word positions
</li><li>[Requires page store] Store dates in local time zone (portability of database files)
</li><li>Recursive Queries (see details)
</li><li>Add an option to the SCRIPT command to generate only portable / standard SQL
</li><li>Test Dezign for Databases (http://www.datanamic.com)
</li><li>Fast library for parsing / formatting: http://javolution.org/
......@@ -394,6 +395,8 @@ See also <a href="build.html#providing_patches">Providing Patches</a>.
</li><li>Natural join: support select x from dual natural join dual.
</li><li>Natural join: somehow support this: select a.x, b.x, x from dual a natural join dual b
</li><li>MySQL compatibility: for auto_increment columns, convert 0 to next value (as when inserting NULL).
</li><li>Optimization for multi-column IN: use an index if possible. Example: (A, B) IN((1, 2), (2, 3)).
</li><li>Optimization for EXISTS: convert to inner join or IN(..) if possible.
</li><li>Functions: support hashcode(value); cryptographic and fast
</li><li>Serialized file lock: support long running queries.
</li><li>Network: use 127.0.0.1 if other addresses don't work.
......@@ -446,7 +449,6 @@ See also <a href="build.html#providing_patches">Providing Patches</a>.
</li><li>Oracle compatibility: support CREATE SYNONYM table FOR schema.table.
</li><li>Optimize A=? OR B=? to UNION if the cost is lower.
</li><li>More secure default configuration if remote access is enabled.
</li><li>Optimization for EXISTS: convert to inner join if possible.
</li><li>Improve database file locking (maybe use native file locking). The current approach seems to be problematic
if the file system is on a remote share (see Google Group 'Lock file modification time is in the future').
</li><li>Document internal features such as BELONGS_TO_TABLE, NULL_TO_DEFAULT, SEQUENCE.
......
......@@ -53,7 +53,6 @@ Tutorial
<a href="#spring">
Using Spring</a><br />
<br />
<h2 id="tutorial_starting_h2_console">Starting and Using the H2 Console</h2>
<p>
The H2 Console application lets you access a SQL database using a browser interface.
......@@ -224,7 +223,6 @@ press [Ctrl]+[C] in the console where the server was started (Windows),
or close the console window.
</p>
<br />
<h2 id="console_settings">Settings of the H2 Console</h2>
<p>
The settings of the H2 Console are stored in a configuration file
......@@ -233,7 +231,6 @@ For Windows installations, the user home directory is usually <code>C:\Documents
The configuration file contains the settings of the application and is automatically created when the H2 Console is first started.
</p>
<br />
<h2 id="connecting_using_jdbc">Connecting to a Database using JDBC</h2>
<p>
To connect to a database, a Java application first needs to load the database driver,
......@@ -262,15 +259,17 @@ is the user name (<code>sa</code> for System Administrator in this example). The
In this database, user names are not case sensitive, but passwords are.
</p>
<br />
<h2 id="creating_new_databases">Creating New Databases</h2>
<p>
By default, if the database specified in the URL does not yet exist, a new (empty)
database is created automatically. The user that created the database automatically becomes
the administrator of this database.
</p>
<p>
Auto-creating new database can be disabled, see
<a href="features.html#database_only_if_exists">Opening a Database Only if it Already Exists</a>.
</p>
<br />
<h2 id="using_server">Using the Server</h2>
<p>
H2 currently supports three server: a web server (for the H2 Console),
......@@ -345,7 +344,6 @@ Shutting down a TCP server can be protected using the option <code>-tcpPassword<
(the same password must be used to start and stop the TCP server).
</p>
<br />
<h2 id="using_hibernate">Using Hibernate</h2>
<p>
This database supports Hibernate version 3.1 and newer. You can use the HSQLDB Dialect,
......@@ -356,7 +354,6 @@ is also available at <code>src/tools/org/hibernate/dialect/H2Dialect.java.txt</c
You can rename it to <code>H2Dialect.java</code> and include this as a patch in your application.
</p>
<br />
<h2 id="using_toplink">Using TopLink and Glassfish</h2>
<p>
To use H2 with Glassfish (or Sun AS), set the Datasource Classname to
......@@ -383,7 +380,6 @@ To enable it, change the following setting in persistence.xml:
In old versions of Glassfish, the property name is <code>toplink.platform.class.name</code>.
</p>
<br />
<h2 id="web_applications">Using Databases in Web Applications</h2>
<p>
There are multiple ways to access a database from within web
......@@ -494,7 +490,6 @@ To create a web application with just the H2 Console, run the following command:
build warConsole
</pre>
<br />
<h2 id="csv">CSV (Comma Separated Values) Support</h2>
<p>
The CSV file support can be used inside the database using the functions
......@@ -568,7 +563,6 @@ public class TestCsv {
}
</pre>
<br />
<h2 id="upgrade_backup_restore">Upgrade, Backup, and Restore</h2>
<h3>Database Upgrade</h3>
......@@ -633,7 +627,6 @@ if the file systems support creating snapshots. The problem is that it can't
be guaranteed that the data is copied in the right order.
</p>
<br />
<h2 id="command_line_tools">Command Line Tools</h2>
<p>
This database comes with a number of command line tools. To get more information about a tool,
......@@ -663,7 +656,6 @@ The tools can also be called from an application by calling the main or another
For details, see the Javadoc documentation.
</p>
<br />
<h2 id="open_office">Using OpenOffice Base</h2>
<p>
OpenOffice.org Base supports database access over the JDBC API. To connect to a H2 database
......@@ -711,7 +703,6 @@ This can be done by create it using the NetBeans OpenOffice plugin.
See also <a href="http://wiki.services.openoffice.org/wiki/Extensions_development_java">Extensions Development</a>.
</p>
<br />
<h2 id="web_start">Java Web Start / JNLP</h2>
<p>
When using Java Web Start / JNLP (Java Network Launch Protocol), permissions tags must be set in the .jnlp file,
......@@ -726,7 +717,6 @@ Example permission tags:
&lt;/security>
</pre>
<br />
<h2 id="connection_pool">Using a Connection Pool</h2>
<p>
For H2, opening a connection is fast if the database is already open.
......@@ -755,7 +745,6 @@ public class Test {
}
</pre>
<br />
<h2 id="fulltext">Fulltext Search</h2>
<p>
H2 includes two fulltext search implementations. One is using Apache Lucene,
......@@ -864,7 +853,6 @@ org.h2.fulltext.FullTextLucene.search(conn, text, limit, offset);
org.h2.fulltext.FullTextLucene.searchData(conn, text, limit, offset);
</pre>
<br />
<h2 id="user_defined_variables">User-Defined Variables</h2>
<p>
This database supports user-defined variables. Variables start with <code>@</code> and can be used wherever
......@@ -888,7 +876,6 @@ of the value assigned to it, that means it is not necessary (or possible) to dec
There are no restrictions on the assigned values; large objects (LOBs) are supported as well.
</p>
<br />
<h2 id="date_time">Date and Time</h2>
<p>
Date, time and timestamp values support ISO 8601 formatting, including time zone:
......@@ -907,7 +894,6 @@ the database using the <code>RUNSCRIPT</code> command
or the <code>RunScript</code> tool in the new time zone.
</p>
<br />
<h2 id="spring">Using Spring</h2>
<p>
Use the following configuration to start and stop the H2 TCP server using the Spring Framework:
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论