H2 database is a Java-based database available for both embedded or client/server use. It’s very small and requires just 1.5MB of disk space. Created by Thomas Müller, man behind HyperSQL/HSQLDB, H2 is an improvement over his earlier work on HSQLDB. He was forced to stop working on HyperSQL by his then employer. When that company ran out of money 5 years later, Thomas decided that it makes more sense to do a fresh start and make radical changes than try to improve HSQLDB.
We support H2 directly in our products! You don't need separate drivers and can immediately connect to your database.
H2 supports durable disk-based tables, as well as in-memory tables (which are, of course, very fast). It can even emulate PostgreSQL when connected via Postgres’s ODBC driver. Multi-version concurrently control, table-locking, full-text search and data encryption are built-in – a surprisingly rich functionality for such a tiny database engine.
As an embedded database, H2 is very good. It’s fast, trivial to use – and works well. Many developers use it as an integration test database (we use it for that, as well).
All our applications are .NET applications. We opted to support Java-based H2 database by migrating it to .NET platform using IKVM.NET, which automatically migrates Java bytecode to .NET bytecode. Therefore, we have native support for H2 and can read, write and query H2.
It's very easy to copy existing database tables into your H2 database. Just point Full Convert to your source database, select your target and let it copy things over.
Tutorials showing how to copy data from another database into H2:
It may make sense to migrate your data away from H2. You may want to do it permanently or just need to share your tables with a collague in a different format.
Tutorials showing how to copy data from H2 to another database: