現時点では、組み込みデータベースとして [〜#〜] hsqldb [〜#〜] を使用していますが、データ量が増えるにつれてメモリフットプリントが少ないデータベースを検索します。
Derby/JavaDB は、システムプロパティにグローバルにプロパティを格納するため、現時点ではオプションではありません。したがって、 h2 について考えました。
HSQLDBを使用しながら、サーバーオブジェクトを作成し、パラメーターを設定して開始しました。これは here で説明されています(org.hsqldb.test.TestBaseクラスで例として示されています)。
問題は、これもh2データベースと同様に実行できるかどうかです。そのためのコードサンプルはありますか? h2ページをスキャンしても、例は見つかりませんでした。
ダウンロードから、ファイルtutorial.htmlにこれがあることがわかります
import org.h2.tools.Server;
...
// start the TCP Server
Server server = Server.createTcpServer(args).start();
...
// stop the TCP Server
server.stop();
はい、組み込みモードでH2を実行できます。 JDBCドライバーを使用して、次のような埋め込みURLに接続するだけです(その例)。
このデータベースは、組み込みモードまたはサーバーモードで使用できます。組み込みモードで使用するには、次のことを行う必要があります。
* Add h2.jar to the classpath * Use the JDBC driver class: org.h2.Driver * The database URL jdbc:h2:~/test opens the database 'test' in your user home directory
JDBCを使用して組み込みH2データベースに接続する例( http://www.h2database.com/javadoc/org/h2/jdbcx/JdbcDataSource.html から変更):
import org.h2.jdbcx.JdbcDataSource;
// ...
JdbcDataSource ds = new JdbcDataSource();
ds.setURL("jdbc:h2:˜/test");
ds.setUser("sa");
ds.setPassword("sa");
Connection conn = ds.getConnection();
純粋にインメモリ/埋め込みモードでH2を使用する場合は、それも可能です。詳細については、このリンクを参照してください。
"jdbc:h2:mem:db1"のような通常のJDBCコードで特別なURLを使用する必要があるだけです。
何らかの理由でサーバーモードで埋め込みH2データベースが必要な場合は、 http://www.h2database.com/javadoc/org/h2/tools/Server.html のAPIを使用して手動で行うことができます。 =-または、データベースのURLに; AUTO_SERVER = TRUEを追加します。