H2 is a relational database management system written in Java. It can be embedded in Java applications or run in client-server or cluster mode.
The software is available under a Freeware license, with source code. Its features, according to the vendor, are comparable to MySQL or PostgreSQL.
H2 can be integrated into Java applications. It is possible to create both in-memory tables, as well as disk-based tables. Tables can be persistent or temporary. Index types are hash table and tree for in-memory tables, and b-tree and linear hash index for disk-based tables.
All data manipulation operations are transactional. Table level locking is implemented.