提交 da30c87b authored 作者: Thomas Mueller's avatar Thomas Mueller

docs

上级 d9a94ab2
......@@ -33,15 +33,15 @@ Build
<a href="#automated">
Automated Build</a><br />
<br /><a name="portability"></a>
<h2>Portability</h2>
<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 /><a name="environment"></a>
<h2>Environment</h2>
<br />
<h2 id="environment">Environment</h2>
<p>
A Java Runtime Environment (JRE) version 1.5 or higher is required to run this database.
</p>
......@@ -63,8 +63,8 @@ Newer version or compatible software works too.
</li><li><a href="http://maven.apache.org">Maven 2.0.9</a>
</li></ul>
<br /><a name="building"></a>
<h2>Building the Software</h2>
<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.
Ensure that Java binary directory is included in the PATH environment variable, and that
......@@ -93,8 +93,8 @@ To switch the source code to the install version of Java, run:
build switchSource
</pre>
<br /><a name="build_targets"></a>
<h2>Build Targets</h2>
<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:
</p>
......@@ -110,8 +110,8 @@ To create the h2client.jar file, go to the directory h2 and execute the followin
build jarClient
</pre>
<br /><a name="maven2"></a>
<h2>Using Maven 2</h2>
<br />
<h2 id="maven2">Using Maven 2</h2>
<h3>Using a Central Repository</h3>
<p>
You can include the database in your Maven 2 project as a dependency.
......@@ -148,8 +148,8 @@ Afterwards, you can include the database in your Maven 2 project as a dependency
&lt;/dependency&gt;
</pre>
<br /><a name="translating"></a>
<h2>Translating</h2>
<br />
<h2 id="translating">Translating</h2>
<p>
The translation of this software is split into the following parts:
</p>
......@@ -165,8 +165,8 @@ is automated by running the tool PropertiesToUTF8. The web site translation is a
using <code>build docs</code>.
</p>
<br /><a name="providing_patches"></a>
<h2>Providing Patches</h2>
<br />
<h2 id="providing_patches">Providing Patches</h2>
<p>
If you like to provide patches, please consider the following guidelines to simplify merging them:
</p>
......@@ -201,8 +201,8 @@ multiple-licensed under the H2 License, version 1.0, and under the
Eclipse Public License, version 1.0 (http://h2database.com/html/license.html)."
</pre>
<br /><a name="automated"></a>
<h2>Automated Build</h2>
<br />
<h2 id="automated">Automated Build</h2>
<p>
This build process is automated and runs regularly.
The build process includes running the tests and code coverage, using the command line
......
......@@ -22,7 +22,7 @@ Data Types
<c:forEach var="item" items="dataTypes">
<br />
<a name="${item.link}"></a><h3>${item.topic}</h3>
<h3 id="${item.link}">${item.topic}</h3>
<pre>
${item.syntax}
</pre>
......
......@@ -40,8 +40,8 @@ Frequently Asked Questions
<a href="#translate">
How to Translate this Project?</a><br />
<br /><a name="known_bugs"></a>
<h3>Are there Known Bugs? When is the Next Release?</h3>
<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.
Here is the list of known and confirmed issues:
......@@ -62,15 +62,15 @@ Here is the list of known and confirmed issues:
This problem is solved in Install4j 4.1.4.
</li></ul>
<br /><a name="open_source"></a>
<h3>Is this Database Engine Open Source?</h3>
<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 /><a name="query_slow"></a>
<h3>My Query is Slow</h3>
<br />
<h3 id="query_slow">My Query is Slow</h3>
<p>
Slow SELECT (or DELETE, UPDATE, MERGE) statement can have multiple reasons.
Follow this checklist:
......@@ -83,14 +83,14 @@ Follow this checklist:
</li>
</ul>
<br /><a name="create_database"></a>
<h3>How to Create a New Database?</h3>
<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.
</p>
<br /><a name="connect"></a>
<h3>How to Connect to a Database?</h3>
<br />
<h3 id="connect">How to Connect to a Database?</h3>
<p>
The database driver is <code>org.h2.Driver</code>,
and the database URL starts with <code>jdbc:h2:</code>.
......@@ -101,8 +101,8 @@ Class.forName("org.h2.Driver");
Connection conn = DriverManager.getConnection("jdbc:h2:~/test", "sa", "");
</pre>
<br /><a name="database_files"></a>
<h3>Where are the Database Files Stored?</h3>
<br />
<h3 id="database_files">Where are the Database Files Stored?</h3>
<p>
When using database URLs like jdbc:h2:~/test, the database is stored in the user directory.
For Windows, this is usually "C:\Documents and Settings\&lt;userName&gt;".
......@@ -114,14 +114,14 @@ The directory is created automatically if it does not yet exist. It is also poss
Example: jdbc:h2:file:C:/data/test
</p>
<br /><a name="size_limit"></a>
<h3>What is the Size Limit (Maximum Size) of a Database?</h3>
<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 /><a name="reliable"></a>
<h3>Is it Reliable?</h3>
<br />
<h3 id="reliable">Is it Reliable?</h3>
<p>
Some users have reported that after a power failure, the database can sometimes not be
opened because the index file is corrupt. In that case, the index file can be deleted
......@@ -173,8 +173,8 @@ Areas considered Experimental:
</li><li>Compatibility modes for other databases (only some features are implemented)
</li></ul>
<br /><a name="slow_open"></a>
<h3>Why is Opening my Database Slow?</h3>
<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.
This is specially a problem for larger databases.
......@@ -194,8 +194,8 @@ Other possible reasons are: the database is very big (many GB), or contains link
that are slow to open.
</p>
<br /><a name="gcj"></a>
<h3>Is the GCJ Version Stable? Faster?</h3>
<br />
<h3 id="gcj">Is the GCJ Version Stable? Faster?</h3>
<p>
The GCJ version is not as stable as the Java version.
When running the regression test with the GCJ version, sometimes the application just stops
......@@ -204,8 +204,8 @@ 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 /><a name="translate"></a>
<h3>How to Translate this Project?</h3>
<br />
<h3 id="translate">How to Translate this Project?</h3>
<p>
For more information, see
<a href="build.html#translating">Build/Translating</a>.
......
......@@ -13,7 +13,7 @@ Initial Developer: H2 Group
</head><body onload="highlight();">
<table class="nav" onmousemove="return mouseMove(event)"><tr class="nav"><td class="nav" valign="top">
<div id="searchMenu" style="width: 180px; overflow: hidden;">
<div id = "searchMenu" style="width: 180px; overflow: hidden;">
<div class="menu">
<img src="images/h2-logo.png" alt="H2 Logo" onclick="document.location='main.html'" width="136" height="74"/>
</div>
......@@ -32,17 +32,17 @@ Initial Developer: H2 Group
</tr>
<tr class="search">
<td class="search" colspan="2">
<input id="search" name="search" type="text" size="21" maxlength="100" onkeyup="listWords(this.value, '')" /><br />
<input type="reset" id="clear" style="display:none;" value="Clear" onclick="listWords('', '');" />
<input id = "search" name="search" type="text" size="21" maxlength="100" onkeyup="listWords(this.value, '')" /><br />
<input type="reset" id = "clear" style="display:none;" value="Clear" onclick="listWords('', '');" />
</td>
</tr>
<tr class="search" style="display:none;" >
<td class="search" style="width: 1%; vertical-align: middle;"><input id="highlight" type="checkbox" checked="checked" onclick="highlightCurrent(this.checked, search.value)" /></td>
<td class="search" style="width: 1%; vertical-align: middle;"><input id = "highlight" type="checkbox" checked="checked" onclick="highlightCurrent(this.checked, search.value)" /></td>
<td class="search" style="width: 99%; padding: 0px; vertical-align: middle;"> Highlight keyword(s) </td>
</tr>
<tr class="search">
<td class="search" colspan="2">
<table id="result" style="border: 0px;">
<table id = "result" style="border: 0px;">
<tr style="display:none"><td></td></tr>
</table>
</td>
......
......@@ -44,7 +44,7 @@ Functions
<c:forEach var="item" items="functionsAll">
<br />
<a name="${item.link}"></a><h3>${item.topic}</h3>
<h3 id="${item.link}">${item.topic}</h3>
<pre>
${item.syntax}
</pre>
......
......@@ -38,7 +38,7 @@ SQL Grammar
<c:forEach var="item" items="commands">
<br />
<a name="${item.link}"></a><h3>${item.topic}</h3>
<h3 id="${item.link}">${item.topic}</h3>
<pre>
${item.syntax}
</pre>
......@@ -52,7 +52,7 @@ ${item.example}
<c:forEach var="item" items="otherGrammar">
<br />
<a name="${item.link}"></a><h3>${item.topic}</h3>
<h3 id="${item.link}">${item.topic}</h3>
<pre>
${item.syntax}
</pre>
......@@ -65,7 +65,7 @@ ${item.example}
</c:forEach>
<br />
<a name="information_schema"></a><h3>Information Schema</h3>
<h3 id="information_schema">Information Schema</h3>
<p>
The system tables in the schema 'INFORMATION_SCHEMA' contain the meta data
of all tables in the database as well as the current settings.
......@@ -77,7 +77,7 @@ of all tables in the database as well as the current settings.
</table>
<br />
<a name="range_table"></a><h3>Range Table</h3>
<h3 id="range_table">Range Table</h3>
<p>
The range table is a dynamic system table that contains all values from a start to an end value.
The table contains one column called X. Both the start and end values are included in the result.
......
......@@ -27,8 +27,8 @@ History
<a href="#supporters">
Supporters</a><br />
<br /><a name="changelog"></a>
<h2>Change Log</h2>
<br />
<h2 id="changelog">Change Log</h2>
<p>
The up-to-date change log is available at
<a href="http://www.h2database.com/html/changelog.html">
......@@ -36,8 +36,8 @@ http://www.h2database.com/html/changelog.html
</a>
</p>
<br /><a name="roadmap"></a>
<h2>Roadmap</h2>
<br />
<h2 id="roadmap">Roadmap</h2>
<p>
The current roadmap is available at
<a href="http://www.h2database.com/html/roadmap.html">
......@@ -45,8 +45,8 @@ http://www.h2database.com/html/roadmap.html
</a>
</p>
<br /><a name="history"></a>
<h2>History of this Database Engine</h2>
<br />
<h2 id="history">History of this Database Engine</h2>
<p>
The development of H2 was started in May 2004,
but it was first published on December 14th 2005.
......@@ -58,8 +58,8 @@ 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 /><a name="why_java"></a>
<h2>Why Java</h2>
<br />
<h2 id="why_java">Why Java</h2>
<p>
A few reasons using a Java database are:
</p>
......@@ -92,8 +92,8 @@ 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 /><a name="supporters"></a>
<h2>Supporters</h2>
<br />
<h2 id="supporters">Supporters</h2>
<p>
Many thanks for those who helped by finding and reporting bugs, gave valuable feedback,
spread the word and have translated this project. Also many thanks to the donors who contributed
......
......@@ -26,8 +26,8 @@ Installation
<a href="#directory_structure">
Directory Structure</a><br />
<br /><a name="requirements"></a>
<h2>Requirements</h2>
<br />
<h2 id="requirements">Requirements</h2>
<p>
To run the database, the following minimum software stack is known to work:
</p>
......@@ -38,8 +38,8 @@ To run the database, the following minimum software stack is known to work:
</li><li>Mozilla Firefox 1.5 or newer
</li></ul>
<br /><a name="supported_platforms"></a>
<h2>Supported Platforms</h2>
<br />
<h2 id="supported_platforms">Supported Platforms</h2>
<p>
As this database is written in Java, it can run on many different platforms.
It is tested with Java 1.5 and 1.6 but can also be compiled to native code using GCJ.
......@@ -48,14 +48,14 @@ 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 /><a name="installing"></a>
<h2>Installing the Software</h2>
<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 /><a name="directory_structure"></a>
<h2>Directory Structure</h2>
<br />
<h2 id="directory_structure">Directory Structure</h2>
<p>
After installing, you should get the following directory structure:
</p>
......
......@@ -29,8 +29,8 @@ Performance
<a href="#fast_import">
Fast Database Import</a><br />
<br /><a name="performance_comparison"></a>
<h2>Performance Comparison</h2>
<br />
<h2 id="performance_comparison">Performance Comparison</h2>
<p>
In many cases H2 is faster than other
(open source and not open source) database engines.
......@@ -271,8 +271,8 @@ Here, one (wrapper) connection is opened at the start,
and for each step a new connection is opened and then closed.
</p>
<br /><a name="poleposition_benchmark"></a>
<h2>PolePosition Benchmark</h2>
<br />
<h2 id="poleposition_benchmark">PolePosition Benchmark</h2>
<p>
The PolePosition is an open source benchmark. The algorithms are all quite simple.
It was developed / sponsored by db4o.
......@@ -315,8 +315,8 @@ To change that, use the database URL jdbc:h2:file:data/h2/dbbench;DB_CLOSE_DELAY
Unfortunately, the PolePosition test does not take this into account.
</li></ul>
<br /><a name="application_profiling"></a>
<h2>Application Profiling</h2>
<br />
<h2 id="application_profiling">Application Profiling</h2>
<h3>Analyze First</h3>
<p>
......@@ -342,8 +342,8 @@ run <code>jstack &lt;pid&gt;</code> or <code>kill -QUIT &lt;pid&gt;</code> (Linu
Ctrl+C (Windows).
</p>
<br /><a name="database_profiling"></a>
<h2>Database Profiling</h2>
<br />
<h2 id="database_profiling">Database Profiling</h2>
<p>
The ConvertTraceFile tool generates SQL statement statistics at the end of the SQL script file.
The format used is similar to the profiling data generated when using java -Xrunhprof.
......@@ -381,8 +381,8 @@ following profiling data (results vary):
-- 0% 100% 0 1 0 SET TRACE_LEVEL_FILE 3;
</pre>
<br /><a name="database_performance_tuning"></a>
<h2>Database Performance Tuning</h2>
<br />
<h2 id="database_performance_tuning">Database Performance Tuning</h2>
<h3>Use a Modern JVM</h3>
<p>
......@@ -510,8 +510,8 @@ Each data type has different storage and performance characteristics:
</li><li>SMALLINT/TINYINT/BOOLEAN are not significantly smaller or faster to work with than INTEGER in most modes.
</li></ul>
<br /><a name="fast_import"></a>
<h2>Fast Database Import</h2>
<br />
<h2 id="fast_import">Fast Database Import</h2>
<p>
To speed up large imports, consider using the following options temporarily:
</p>
......
......@@ -21,8 +21,8 @@ Quickstart
<a href="#h2_console">
The H2 Console Application</a><br />
<br /><a name="embedding"></a>
<h2>Embedding H2 in an Application</h2>
<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:
</p>
......@@ -33,8 +33,8 @@ 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 /><a name="h2_console"></a>
<h2>The H2 Console Application</h2>
<br />
<h2 id="h2_console">The H2 Console Application</h2>
<p>
The Console lets you access a SQL database using a browser interface.
<br />
......
......@@ -457,6 +457,8 @@ See also <a href="build.html#providing_patches">Providing Patches</a>.
</li><li>Maybe disallow = within database names (jdbc:h2:mem:MODE=DB2 means database name MODE=DB2).
</li><li>Fast alter table add column.
</li><li>Improve concurrency for in-memory database operations.
</li><li>Issue 122: Support for connection aliases for remote tcp connections.
</li><li>Fast scrambling (strong encryption doesn't help if the password is included in the application).
</li></ul>
<h2>Not Planned</h2>
......
......@@ -41,7 +41,7 @@ Initial Developer: H2 Group
if (line == i) {
document.write('<b>' + i + '></b><br />');
} else if (line <= 4 || i + 4 == line) {
document.write(i + '<a name="here"></a><br />');
document.write(i + '<a id = "here"></a><br />');
} else {
document.write(i + '<br />');
}
......@@ -50,7 +50,7 @@ Initial Developer: H2 Group
</script>
</td>
<td width="92%" style="vertical-align: top">
<iframe id="source" frameborder="0" marginwidth="0" marginheight="0" width="100%" height="80000px" scrolling="no" src="">
<iframe id = "source" frameborder="0" marginwidth="0" marginheight="0" width="100%" height="80000px" scrolling="no" src="">
</iframe>
</td>
</tr>
......
......@@ -186,14 +186,14 @@ function sizeTextArea() {
<h1>Online Error Analyzer</h1>
<b><a href="../html/main.html">Home</a></b><br />
<h2>
<a href="javascript:select('input')" id="inputTab">Input</a>&nbsp;
<a href="javascript:select('details')" id="detailsTab">Details</a>&nbsp;
<a href="javascript:select('source')" id="sourceTab">Source Code</a>
<a href="javascript:select('input')" id = "inputTab">Input</a>&nbsp;
<a href="javascript:select('details')" id = "detailsTab">Details</a>&nbsp;
<a href="javascript:select('source')" id = "sourceTab">Source Code</a>
</h2>
<hr/>
<div id="input">
<div id = "input">
<p>Fill in the error message and stack trace and click on 'Details' or 'Source Code': </p>
<textarea id="error" cols="100" style="width: 100%; overflow: auto;" rows="20"
<textarea id = "error" cols="100" style="width: 100%; overflow: auto;" rows="20"
onChange="convert()"
onSelect="convert()"
onKeyUp="convert()"
......@@ -203,24 +203,24 @@ function sizeTextArea() {
>
</textarea>
</div>
<div id="details">
<p><b>Error Code: </b><span id="errorCode"></span></p>
<p><b>Product Version: </b><span id="version"></span></p>
<div id = "details">
<p><b>Error Code: </b><span id = "errorCode"></span></p>
<p><b>Product Version: </b><span id = "version"></span></p>
<p><b>Message: </b></p>
<p id="message"></p>
<p id = "message"></p>
<p><b>More Information:</b></p>
<iframe id="more" frameborder="0" marginwidth="0" marginheight="0" width="100%" height="100px" src="">
<iframe id = "more" frameborder="0" marginwidth="0" marginheight="0" width="100%" height="100px" src="">
</iframe>
</div>
<div id="source">
<table id="sourceTable" style="border:0px" width="100%"><tr>
<div id = "source">
<table id = "sourceTable" style="border:0px" width="100%"><tr>
<td style="border:0px" width="30px">
<p><b>Stack Trace: </b></p>
<p id="links"></p>
<p id = "links"></p>
</td><td style="border:0px" width="90%">
<p><b>Source File: </b><span id="file"></span><br />
Raw file <input type="checkbox" id="rawSource" /> (fast; only Firefox)</p>
<iframe id="code" frameborder="0" marginwidth="0" marginheight="0" width="100%" height="100px" src="">
<p><b>Source File: </b><span id = "file"></span><br />
Raw file <input type="checkbox" id = "rawSource" /> (fast; only Firefox)</p>
<iframe id = "code" frameborder="0" marginwidth="0" marginheight="0" width="100%" height="100px" src="">
</iframe>
</td>
</tr></table>
......
......@@ -53,8 +53,8 @@ Tutorial
<a href="#spring">
Using Spring</a><br />
<br /><a name="tutorial_starting_h2_console"></a>
<h2>Starting and Using the H2 Console</h2>
<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.
This can be a H2 database, or another database that supports the JDBC API.
......@@ -220,8 +220,8 @@ press [Ctrl]+[C] in the console where the server was started (Windows),
or close the console window.
</p>
<br /><a name="console_settings"></a>
<h2>Settings of the H2 Console</h2>
<br />
<h2 id="console_settings">Settings of the H2 Console</h2>
<p>
The settings of the H2 Console are stored in a configuration file
called <code>.h2.server.properties</code> in you user home directory.
......@@ -229,8 +229,8 @@ 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 /><a name="connecting_using_jdbc"></a>
<h2>Connecting to a Database using JDBC</h2>
<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,
and then get a connection. A simple way to do that is using the following code:
......@@ -258,16 +258,16 @@ is the user name ('sa' for System Administrator in this example). The third para
In this database, user names are not case sensitive, but passwords are.
</p>
<br /><a name="creating_new_databases"></a>
<h2>Creating New Databases</h2>
<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>
<br /><a name="using_server"></a>
<h2>Using the Server</h2>
<br />
<h2 id="using_server">Using the Server</h2>
<p>
H2 currently supports three server: a web server (for the H2 Console),
a TCP server (for client/server connections) and an PG server (for PostgreSQL clients).
......@@ -342,8 +342,8 @@ Shutting down a TCP server can be protected using the option -tcpPassword
(the same password must be used to start and stop the TCP server).
</p>
<br /><a name="using_hibernate"></a>
<h2>Using Hibernate</h2>
<br />
<h2 id="using_hibernate">Using Hibernate</h2>
<p>
This database supports Hibernate version 3.1 and newer. You can use the HSQLDB Dialect,
or the native H2 Dialect. Unfortunately the H2 Dialect included in Hibernate is buggy. A
......@@ -353,8 +353,8 @@ is also available at src/tools/org/hibernate/dialect/H2Dialect.java.txt.
You can rename it to H2Dialect.java and include this as a patch in your application.
</p>
<br /><a name="using_toplink"></a>
<h2>Using TopLink and Glassfish</h2>
<br />
<h2 id="using_toplink">Using TopLink and Glassfish</h2>
<p>
To use H2 with Glassfish (or Sun AS), set the Datasource Classname to
<code>org.h2.jdbcx.JdbcDataSource</code>. You can set this in the GUI
......@@ -380,8 +380,8 @@ 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 /><a name="web_applications"></a>
<h2>Using Databases in Web Applications</h2>
<br />
<h2 id="web_applications">Using Databases in Web Applications</h2>
<p>
There are multiple ways to access a database from within web
applications. Here are some examples if you use Tomcat or JBoss.
......@@ -487,8 +487,8 @@ To create a web application with just the H2 Console, run the following command:
build warConsole
</pre>
<br /><a name="csv"></a>
<h2>CSV (Comma Separated Values) Support</h2>
<br />
<h2 id="csv">CSV (Comma Separated Values) Support</h2>
<p>
The CSV file support can be used inside the database using the functions CSVREAD and CSVWRITE,
or it can be used outside the database as a standalone tool.
......@@ -560,8 +560,8 @@ public class TestCsv {
}
</pre>
<br /><a name="upgrade_backup_restore"></a>
<h2>Upgrade, Backup, and Restore</h2>
<br />
<h2 id="upgrade_backup_restore">Upgrade, Backup, and Restore</h2>
<h3>Database Upgrade</h3>
<p>
......@@ -625,8 +625,8 @@ 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 /><a name="command_line_tools"></a>
<h2>Command Line Tools</h2>
<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,
start it with the parameter '-?', for example:
......@@ -655,8 +655,8 @@ The tools can also be called from an application by calling the main or another
For details, see the Javadoc documentation.
</p>
<br /><a name="open_office"></a>
<h2>Using OpenOffice Base</h2>
<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
using OpenOffice Base, you first need to add the JDBC driver to OpenOffice.
......@@ -703,8 +703,8 @@ 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 /><a name="web_start"></a>
<h2>Java Web Start / JNLP</h2>
<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,
and the application .jar file must be signed. Otherwise, when trying to write to the file system, the following
......@@ -717,8 +717,8 @@ Example permission tags:
&lt;/security>
</pre>
<br /><a name="connection_pool"></a>
<h2>Using a Connection Pool</h2>
<br />
<h2 id="connection_pool">Using a Connection Pool</h2>
<p>
For H2, opening a connection is fast if the database is already open.
Still, using a connection pool improves performance if you open and close connections a lot.
......@@ -746,8 +746,8 @@ public class Test {
}
</pre>
<br /><a name="fulltext"></a>
<h2>Fulltext Search</h2>
<br />
<h2 id="fulltext">Fulltext Search</h2>
<p>
H2 includes two fulltext search implementations. One is using Apache Lucene,
and the other (the native implementation) stores the index data in special
......@@ -791,7 +791,7 @@ The result contains the columns SCHEMA (the schema name),
TABLE (the table name), COLUMNS (an array of column names), and KEYS
(an array of objects). To join a table, use a join as in:
<code>SELECT T.* FROM FT_SEARCH_DATA('Hello', 0, 0) FT, TEST T
WHERE FT.TABLE='TEST' AND T.ID= FT.KEYS[0];</code>
WHERE FT.TABLE='TEST' AND T.ID=FT.KEYS[0];</code>
</p>
<p>
You can also call the index from within a Java application:
......@@ -841,7 +841,7 @@ The result contains the columns SCHEMA (the schema name),
TABLE (the table name), COLUMNS (an array of column names), and KEYS
(an array of objects). To join a table, use a join as in:
<code>SELECT T.* FROM FTL_SEARCH_DATA('Hello', 0, 0) FT, TEST T
WHERE FT.TABLE='TEST' AND T.ID= FT.KEYS[0];</code>
WHERE FT.TABLE='TEST' AND T.ID=FT.KEYS[0];</code>
</p>
<p>
You can also call the index from within a Java application:
......@@ -851,8 +851,8 @@ org.h2.fulltext.FullTextLucene.search(conn, text, limit, offset);
org.h2.fulltext.FullTextLucene.searchData(conn, text, limit, offset);
</pre>
<br /><a name="user_defined_variables"></a>
<h2>User-Defined Variables</h2>
<br />
<h2 id="user_defined_variables">User-Defined Variables</h2>
<p>
This database supports user-defined variables. Variables start with @ and can be used wherever
expressions or parameters are allowed. Variables are not persisted and session scoped, that means only visible
......@@ -874,8 +874,8 @@ 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 /><a name="date_time"></a>
<h2>Date and Time</h2>
<br />
<h2 id="date_time">Date and Time</h2>
<p>
Date, time and timestamp values support ISO 8601 formatting, including time zone:
</p>
......@@ -891,13 +891,13 @@ you need to create a SQL script file using the SCRIPT command or Script tool, an
the database using the RUNSCRIPT command or the RunScript tool in the new time zone.
</p>
<br /><a name="spring"></a>
<h2>Using Spring</h2>
<br />
<h2 id="spring">Using Spring</h2>
<p>
Use the following configuration to start and stop the H2 TCP server using the Spring Framework:
</p>
<pre>
&lt;bean id="org.h2.tools.Server"
&lt;bean id = "org.h2.tools.Server"
class="org.h2.tools.Server"
factory-method="createTcpServer"
init-method="start"
......
......@@ -15,18 +15,18 @@ function off(id) {
function allDetails() {
for (i = 0;; i++) {
x = document.getElementById('m' + i);
x = document.getElementById('_' + i);
if (x == null) {
break;
}
switchTag('m' + i, 'titleOff', 'detailOn');
switchTag(i, 'titleOff', 'detailOn');
}
return false;
}
function switchTag(id, title, detail) {
document.getElementById('t' + id).className = title;
document.getElementById(id).className = detail;
document.getElementById('__' + id).className = title;
document.getElementById('_' + id).className = detail;
return false;
}
......@@ -38,7 +38,7 @@ function openLink() {
}
var ref = page.substr(pos);
link = decodeURIComponent(ref);
el = document.getElementsByName(link)[0].parentNode.parentNode;
el = document.getElementById(link).parentNode.parentNode;
on(el.id);
window.scrollTo(0, el.offsetTop);
return true;
......
......@@ -851,7 +851,7 @@ To disable anonymous SSL, set the system property <code>h2.enableAnonymousSSL</c
Universally Unique Identifiers (UUID)
@advanced_1284_p
This database supports the UUIDs. Also supported is a function to create new UUIDs using a cryptographically strong pseudo random number generator. With random UUIDs, the chance of two having the same value can be calculated using the probability theory. See also 'Birthday Paradox'. Standardized randomly generated UUIDs have 122 random bits. 4 bits are used for the version (Randomly generated UUID), and 2 bits for the variant (Leach-Salz). This database supports generating such UUIDs using the built-in function RANDOM_UUID(). Here is a small program to estimate the probability of having two identical UUIDs after generating a number of values:
This database supports UUIDs. Also supported is a function to create new UUIDs using a cryptographically strong pseudo random number generator. With random UUIDs, the chance of two having the same value can be calculated using the probability theory. See also 'Birthday Paradox'. Standardized randomly generated UUIDs have 122 random bits. 4 bits are used for the version (Randomly generated UUID), and 2 bits for the variant (Leach-Salz). This database supports generating such UUIDs using the built-in function RANDOM_UUID(). Here is a small program to estimate the probability of having two identical UUIDs after generating a number of values:
@advanced_1285_p
Some values are:
......@@ -9031,13 +9031,19 @@ Fast alter table add column.
@roadmap_1421_li
Improve concurrency for in-memory database operations.
@roadmap_1422_h2
Not Planned
@roadmap_1422_li
Issue 122: Support for connection aliases for remote tcp connections.
@roadmap_1423_li
Fast scrambling (strong encryption doesn't help if the password is included in the application).
@roadmap_1424_h2
Not Planned
@roadmap_1425_li
HSQLDB (did) support this: select id i from test where i&lt;0 (other databases don't). Supporting it may break compatibility.
@roadmap_1424_li
@roadmap_1426_li
String.intern (so that Strings can be compared with ==) will not be used because some VMs have problems when used extensively.
@sourceError_1000_h1
......@@ -9050,7 +9056,7 @@ Home
Input
@sourceError_1003_h2
&nbsp; <a href="javascript:select('details')" id="detailsTab">Details</a> &nbsp; <a href="javascript:select('source')" id="sourceTab">Source Code</a>
&nbsp; <a href="javascript:select('details')" id = "detailsTab">Details</a> &nbsp; <a href="javascript:select('source')" id = "sourceTab">Source Code</a>
@sourceError_1004_p
Fill in the error message and stack trace and click on 'Details' or 'Source Code':
......@@ -9683,7 +9689,7 @@ This will produce a result set that contains the query needed to retrieve the da
QUERY: "PUBLIC"."TEST" WHERE "ID"=1
@tutorial_1201_p
To get the raw data, use <code>FT_SEARCH_DATA('Hello', 0, 0);</code> . The result contains the columns SCHEMA (the schema name), TABLE (the table name), COLUMNS (an array of column names), and KEYS (an array of objects). To join a table, use a join as in: <code>SELECT T.* FROM FT_SEARCH_DATA('Hello', 0, 0) FT, TEST T WHERE FT.TABLE='TEST' AND T.ID= FT.KEYS[0];</code>
To get the raw data, use <code>FT_SEARCH_DATA('Hello', 0, 0);</code> . The result contains the columns SCHEMA (the schema name), TABLE (the table name), COLUMNS (an array of column names), and KEYS (an array of objects). To join a table, use a join as in: <code>SELECT T.* FROM FT_SEARCH_DATA('Hello', 0, 0) FT, TEST T WHERE FT.TABLE='TEST' AND T.ID=FT.KEYS[0];</code>
@tutorial_1202_p
You can also call the index from within a Java application:
......@@ -9707,7 +9713,7 @@ This will produce a result set that contains the query needed to retrieve the da
QUERY: "PUBLIC"."TEST" WHERE "ID"=1
@tutorial_1209_p
To get the raw data, use <code>FTL_SEARCH_DATA('Hello', 0, 0);</code> . The result contains the columns SCHEMA (the schema name), TABLE (the table name), COLUMNS (an array of column names), and KEYS (an array of objects). To join a table, use a join as in: <code>SELECT T.* FROM FTL_SEARCH_DATA('Hello', 0, 0) FT, TEST T WHERE FT.TABLE='TEST' AND T.ID= FT.KEYS[0];</code>
To get the raw data, use <code>FTL_SEARCH_DATA('Hello', 0, 0);</code> . The result contains the columns SCHEMA (the schema name), TABLE (the table name), COLUMNS (an array of column names), and KEYS (an array of objects). To join a table, use a join as in: <code>SELECT T.* FROM FTL_SEARCH_DATA('Hello', 0, 0) FT, TEST T WHERE FT.TABLE='TEST' AND T.ID=FT.KEYS[0];</code>
@tutorial_1210_p
You can also call the index from within a Java application:
......
......@@ -851,7 +851,7 @@ SSL/TLS 接続
汎用一意識別子 (UUID)
@advanced_1284_p
このデータベースはUUIDをサポートしています。 また、暗号化強力疑似乱数ジェネレーターを使用して新しいUUIDを作成する関数をサポートしています。 同じ値をもつ二つの無作為なUUIDが存在する可能性は、確率論を使用して計算されることができます。 "Birthday Paradox" もご覧下さい。標準化された無作為に生成されたUUIDは、122の無作為なビットを保持しています。 4ビットはバージョン(無作為に生成されたUUID) に、2ビットはバリアント (Leach-Salz) に使用されます。 このデータベースは組み込み関数 RANDOM_UUID() を使用してこのようなUUIDを生成することをサポートしています。 ここに、値の数字が生成された後、二つの 同一のUUIDが生じる可能性を見積もる小さなプログラムがあります:
#This database supports UUIDs. Also supported is a function to create new UUIDs using a cryptographically strong pseudo random number generator. With random UUIDs, the chance of two having the same value can be calculated using the probability theory. See also 'Birthday Paradox'. Standardized randomly generated UUIDs have 122 random bits. 4 bits are used for the version (Randomly generated UUID), and 2 bits for the variant (Leach-Salz). This database supports generating such UUIDs using the built-in function RANDOM_UUID(). Here is a small program to estimate the probability of having two identical UUIDs after generating a number of values:
@advanced_1285_p
いくつかの値は:
......@@ -9031,13 +9031,19 @@ SQLコマンドがコマンドエリアに表示されます。
@roadmap_1421_li
#Improve concurrency for in-memory database operations.
@roadmap_1422_h2
#Not Planned
@roadmap_1422_li
#Issue 122: Support for connection aliases for remote tcp connections.
@roadmap_1423_li
#Fast scrambling (strong encryption doesn't help if the password is included in the application).
@roadmap_1424_h2
#Not Planned
@roadmap_1425_li
#HSQLDB (did) support this: select id i from test where i&lt;0 (other databases don't). Supporting it may break compatibility.
@roadmap_1424_li
@roadmap_1426_li
#String.intern (so that Strings can be compared with ==) will not be used because some VMs have problems when used extensively.
@sourceError_1000_h1
......@@ -9050,7 +9056,7 @@ SQLコマンドがコマンドエリアに表示されます。
#Input
@sourceError_1003_h2
#&nbsp; <a href="javascript:select('details')" id="detailsTab">Details</a> &nbsp; <a href="javascript:select('source')" id="sourceTab">Source Code</a>
#&nbsp; <a href="javascript:select('details')" id = "detailsTab">Details</a> &nbsp; <a href="javascript:select('source')" id = "sourceTab">Source Code</a>
@sourceError_1004_p
#Fill in the error message and stack trace and click on 'Details' or 'Source Code':
......@@ -9683,7 +9689,7 @@ Java Web Start / JNLP (Java Network Launch Protocol) を使用している時、
#QUERY: "PUBLIC"."TEST" WHERE "ID"=1
@tutorial_1201_p
#To get the raw data, use <code>FT_SEARCH_DATA('Hello', 0, 0);</code> . The result contains the columns SCHEMA (the schema name), TABLE (the table name), COLUMNS (an array of column names), and KEYS (an array of objects). To join a table, use a join as in: <code>SELECT T.* FROM FT_SEARCH_DATA('Hello', 0, 0) FT, TEST T WHERE FT.TABLE='TEST' AND T.ID= FT.KEYS[0];</code>
#To get the raw data, use <code>FT_SEARCH_DATA('Hello', 0, 0);</code> . The result contains the columns SCHEMA (the schema name), TABLE (the table name), COLUMNS (an array of column names), and KEYS (an array of objects). To join a table, use a join as in: <code>SELECT T.* FROM FT_SEARCH_DATA('Hello', 0, 0) FT, TEST T WHERE FT.TABLE='TEST' AND T.ID=FT.KEYS[0];</code>
@tutorial_1202_p
Javaアプリケーション内からインデックスを呼び出すことも可能です:
......@@ -9707,7 +9713,7 @@ Luceneフルテキストサーチを使用する
#QUERY: "PUBLIC"."TEST" WHERE "ID"=1
@tutorial_1209_p
#To get the raw data, use <code>FTL_SEARCH_DATA('Hello', 0, 0);</code> . The result contains the columns SCHEMA (the schema name), TABLE (the table name), COLUMNS (an array of column names), and KEYS (an array of objects). To join a table, use a join as in: <code>SELECT T.* FROM FTL_SEARCH_DATA('Hello', 0, 0) FT, TEST T WHERE FT.TABLE='TEST' AND T.ID= FT.KEYS[0];</code>
#To get the raw data, use <code>FTL_SEARCH_DATA('Hello', 0, 0);</code> . The result contains the columns SCHEMA (the schema name), TABLE (the table name), COLUMNS (an array of column names), and KEYS (an array of objects). To join a table, use a join as in: <code>SELECT T.* FROM FTL_SEARCH_DATA('Hello', 0, 0) FT, TEST T WHERE FT.TABLE='TEST' AND T.ID=FT.KEYS[0];</code>
@tutorial_1210_p
Javaアプリケーション内からインデックスを呼び出すことも可能です:
......
......@@ -282,7 +282,7 @@ advanced_1280_p=Remote SSL/TLS connections are supported using the Java Secure S
advanced_1281_p=To use your own keystore, set the system properties <code>javax.net.ssl.keyStore</code> and <code>javax.net.ssl.keyStorePassword</code> before starting the H2 server and client. See also <a href\="http\://java.sun.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.html\#CustomizingStores">Customizing the Default Key and Trust Stores, Store Types, and Store Passwords</a> for more information.
advanced_1282_p=To disable anonymous SSL, set the system property <code>h2.enableAnonymousSSL</code> to false.
advanced_1283_h2=Universally Unique Identifiers (UUID)
advanced_1284_p=This database supports the UUIDs. Also supported is a function to create new UUIDs using a cryptographically strong pseudo random number generator. With random UUIDs, the chance of two having the same value can be calculated using the probability theory. See also 'Birthday Paradox'. Standardized randomly generated UUIDs have 122 random bits. 4 bits are used for the version (Randomly generated UUID), and 2 bits for the variant (Leach-Salz). This database supports generating such UUIDs using the built-in function RANDOM_UUID(). Here is a small program to estimate the probability of having two identical UUIDs after generating a number of values\:
advanced_1284_p=This database supports UUIDs. Also supported is a function to create new UUIDs using a cryptographically strong pseudo random number generator. With random UUIDs, the chance of two having the same value can be calculated using the probability theory. See also 'Birthday Paradox'. Standardized randomly generated UUIDs have 122 random bits. 4 bits are used for the version (Randomly generated UUID), and 2 bits for the variant (Leach-Salz). This database supports generating such UUIDs using the built-in function RANDOM_UUID(). Here is a small program to estimate the probability of having two identical UUIDs after generating a number of values\:
advanced_1285_p=Some values are\:
advanced_1286_p=To help non-mathematicians understand what those numbers mean, here a comparison\: one's annual risk of being hit by a meteorite is estimated to be one chance in 17 billion, that means the probability is about 0.000'000'000'06.
advanced_1287_h2=Settings Read from System Properties
......@@ -3007,13 +3007,15 @@ roadmap_1418_li=Add option to enable TCP_NODELAY using Socket.setTcpNoDelay(true
roadmap_1419_li=Maybe disallow \= within database names (jdbc\:h2\:mem\:MODE\=DB2 means database name MODE\=DB2).
roadmap_1420_li=Fast alter table add column.
roadmap_1421_li=Improve concurrency for in-memory database operations.
roadmap_1422_h2=Not Planned
roadmap_1423_li=HSQLDB (did) support this\: select id i from test where i&lt;0 (other databases don't). Supporting it may break compatibility.
roadmap_1424_li=String.intern (so that Strings can be compared with \=\=) will not be used because some VMs have problems when used extensively.
roadmap_1422_li=Issue 122\: Support for connection aliases for remote tcp connections.
roadmap_1423_li=Fast scrambling (strong encryption doesn't help if the password is included in the application).
roadmap_1424_h2=Not Planned
roadmap_1425_li=HSQLDB (did) support this\: select id i from test where i&lt;0 (other databases don't). Supporting it may break compatibility.
roadmap_1426_li=String.intern (so that Strings can be compared with \=\=) will not be used because some VMs have problems when used extensively.
sourceError_1000_h1=Online Error Analyzer
sourceError_1001_a=Home
sourceError_1002_a=Input
sourceError_1003_h2=&nbsp; <a href\="javascript\:select('details')" id\="detailsTab">Details</a> &nbsp; <a href\="javascript\:select('source')" id\="sourceTab">Source Code</a>
sourceError_1003_h2=&nbsp; <a href\="javascript\:select('details')" id \= "detailsTab">Details</a> &nbsp; <a href\="javascript\:select('source')" id \= "sourceTab">Source Code</a>
sourceError_1004_p=Fill in the error message and stack trace and click on 'Details' or 'Source Code'\:
sourceError_1005_b=Error Code\:
sourceError_1006_b=Product Version\:
......@@ -3224,7 +3226,7 @@ tutorial_1197_p=You need to initialize it in each database where you want to use
tutorial_1198_p=PUBLIC is the schema, TEST is the table name. The list of column names (column separated) is optional, in this case all columns are indexed. The index is updated in realtime. To search the index, use the following query\:
tutorial_1199_p=This will produce a result set that contains the query needed to retrieve the data\:
tutorial_1200_p=QUERY\: "PUBLIC"."TEST" WHERE "ID"\=1
tutorial_1201_p=To get the raw data, use <code>FT_SEARCH_DATA('Hello', 0, 0);</code> . The result contains the columns SCHEMA (the schema name), TABLE (the table name), COLUMNS (an array of column names), and KEYS (an array of objects). To join a table, use a join as in\: <code>SELECT T.* FROM FT_SEARCH_DATA('Hello', 0, 0) FT, TEST T WHERE FT.TABLE\='TEST' AND T.ID\= FT.KEYS[0];</code>
tutorial_1201_p=To get the raw data, use <code>FT_SEARCH_DATA('Hello', 0, 0);</code> . The result contains the columns SCHEMA (the schema name), TABLE (the table name), COLUMNS (an array of column names), and KEYS (an array of objects). To join a table, use a join as in\: <code>SELECT T.* FROM FT_SEARCH_DATA('Hello', 0, 0) FT, TEST T WHERE FT.TABLE\='TEST' AND T.ID\=FT.KEYS[0];</code>
tutorial_1202_p=You can also call the index from within a Java application\:
tutorial_1203_h3=Using the Lucene Fulltext Search
tutorial_1204_p=To use the Lucene full text search, you need the Lucene library in the classpath. How to do that depends on the application; if you use the H2 Console, you can add the Lucene jar file to the environment variables H2DRIVERS or CLASSPATH. To initialize the Lucene fulltext search in a database, call\:
......@@ -3232,7 +3234,7 @@ tutorial_1205_p=You need to initialize it in each database where you want to use
tutorial_1206_p=PUBLIC is the schema, TEST is the table name. The list of column names (column separated) is optional, in this case all columns are indexed. The index is updated in realtime. To search the index, use the following query\:
tutorial_1207_p=This will produce a result set that contains the query needed to retrieve the data\:
tutorial_1208_p=QUERY\: "PUBLIC"."TEST" WHERE "ID"\=1
tutorial_1209_p=To get the raw data, use <code>FTL_SEARCH_DATA('Hello', 0, 0);</code> . The result contains the columns SCHEMA (the schema name), TABLE (the table name), COLUMNS (an array of column names), and KEYS (an array of objects). To join a table, use a join as in\: <code>SELECT T.* FROM FTL_SEARCH_DATA('Hello', 0, 0) FT, TEST T WHERE FT.TABLE\='TEST' AND T.ID\= FT.KEYS[0];</code>
tutorial_1209_p=To get the raw data, use <code>FTL_SEARCH_DATA('Hello', 0, 0);</code> . The result contains the columns SCHEMA (the schema name), TABLE (the table name), COLUMNS (an array of column names), and KEYS (an array of objects). To join a table, use a join as in\: <code>SELECT T.* FROM FTL_SEARCH_DATA('Hello', 0, 0) FT, TEST T WHERE FT.TABLE\='TEST' AND T.ID\=FT.KEYS[0];</code>
tutorial_1210_p=You can also call the index from within a Java application\:
tutorial_1211_h2=User-Defined Variables
tutorial_1212_p=This database supports user-defined variables. Variables start with @ and can be used wherever expressions or parameters are allowed. Variables are not persisted and session scoped, that means only visible from within the session in which they are defined. A value is usually assigned using the SET command\:
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论