# h2database/h2database

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/h2database-h2database).**

4,607 stars · 1,297 forks · Java · NOASSERTION

## Links

- GitHub: https://github.com/h2database/h2database
- Homepage: https://h2database.com
- awesome-repositories: https://awesome-repositories.com/repository/h2database-h2database.md

## Topics

`database` `java` `jdbc` `sql`

## Description

H2 is a JDBC-compliant relational database management system written in Java. It functions as an embeddable SQL database that can run directly within an application process to remove network latency, or as an in-memory database for high-performance volatile storage. It also includes a web-based console for executing SQL commands and administering schemas.

The system is characterized by its flexible deployment modes, including a standalone server mode for remote TCP/IP access and a mixed mode for simultaneous local and remote connectivity. It features a dialect emulation layer and compatibility modes that allow it to mimic the behavior and syntax of other database systems.

The engine provides a broad set of capabilities covering ACID transactions with multi-version concurrency control, geospatial and JSON data support, and advanced analytical window functions. It includes tools for data preservation through compressed backups, SQL script restoration, and off-heap memory management to handle large datasets.

The database integrates with applications using standard Java Database Connectivity drivers and connection URLs.

## Tags

### Data & Databases

- [Database Record Querying](https://awesome-repositories.com/f/data-databases/database-record-querying.md) — Provides a full SQL engine for retrieving records using filters, grouping, window functions, and sorting. ([source](https://h2database.com/html/commands.html))
- [Embedded Database Runtimes](https://awesome-repositories.com/f/data-databases/embedded-database-runtimes.md) — Functions as an embeddable database engine that runs directly within the host application process.
- [Embedded Database Servers](https://awesome-repositories.com/f/data-databases/embedded-database-servers.md) — Functions as a lightweight database engine that runs in-process within a Java application. ([source](https://h2database.com/html/quickstart.html))
- [Relational Data Storage](https://awesome-repositories.com/f/data-databases/relational-data-storage.md) — Provides a full relational database engine with SQL support, ACID transactions, and multi-version concurrency control. ([source](https://h2database.com/html/main.html))
- [ACID Transactional Cores](https://awesome-repositories.com/f/data-databases/acid-transactional-cores.md) — Implements a core transactional engine supporting ACID compliance and multi-version concurrency control for data consistency. ([source](https://cdn.jsdelivr.net/gh/h2database/h2database@master/README.md))
- [Aggregate Calculations](https://awesome-repositories.com/f/data-databases/aggregate-calculations.md) — Computes standard aggregate values such as sum, average, minimum, maximum, and count across rows. ([source](https://h2database.com/html/functions-aggregate.html))
- [Transaction Lifecycle Control](https://awesome-repositories.com/f/data-databases/atomic-commit-logs/transaction-lifecycle-control.md) — Provides standard transaction management including commit, rollback, and savepoint operations to ensure data atomicity. ([source](https://h2database.com/html/commands.html))
- [Database File Locking](https://awesome-repositories.com/f/data-databases/concurrent-file-write-synchronizations/database-file-locking.md) — Ensures data integrity by preventing multiple concurrent processes from writing to the same database file. ([source](https://h2database.com/html/advanced.html))
- [Local File Storage](https://awesome-repositories.com/f/data-databases/data-engineering-infrastructure/data-persistence-storage/data-storage/file-based-storage/local-file-storage.md) — Provides structured data storage on local disk or in-memory for desktop applications and development environments.
- [Database Initializations](https://awesome-repositories.com/f/data-databases/database-initializations.md) — Initializes new databases via connection URLs, shell tools, or the web console. ([source](https://h2database.com/html/tutorial.html))
- [Database User Privilege Management](https://awesome-repositories.com/f/data-databases/database-user-privilege-management.md) — Implements granular access control by granting and revoking operation rights on database schemas and tables. ([source](https://h2database.com/html/commands.html))
- [Embeddable Databases](https://awesome-repositories.com/f/data-databases/embeddable-databases.md) — Operates as an embeddable SQL database engine that runs within the application process.
- [Embedded Database Integrations](https://awesome-repositories.com/f/data-databases/embedded-database-integrations.md) — Integrates directly into Java application processes to eliminate network latency and deployment complexity.
- [In-Memory Databases](https://awesome-repositories.com/f/data-databases/in-memory-databases.md) — Provides an in-memory storage mode for high-performance, volatile data processing. ([source](https://h2database.com/html/cheatSheet.html))
- [Indexes and Constraints](https://awesome-repositories.com/f/data-databases/indexes-and-constraints.md) — Provides full management of database indexes and integrity constraints, including unique and spatial types. ([source](https://h2database.com/html/commands.html))
- [Multi-Version Concurrency Control](https://awesome-repositories.com/f/data-databases/multi-version-concurrency-controls/multi-version-concurrency-control.md) — Implements multi-version concurrency control to allow simultaneous non-blocking reads and writes via data snapshots. ([source](https://h2database.com/))
- [Numeric Precision Management](https://awesome-repositories.com/f/data-databases/numeric-fields/numeric-precision-constraints/numeric-precision-management.md) — Provides precise decimal types to ensure accurate floating point and currency calculations. ([source](https://h2database.com/html/datatypes.html))
- [Pluggable Storage Engines](https://awesome-repositories.com/f/data-databases/pluggable-storage-engines.md) — Features a pluggable storage architecture allowing switches between in-memory, disk, and compressed zip backends.
- [Cost-Based Optimizers](https://awesome-repositories.com/f/data-databases/query-optimizers/cost-based-optimizers.md) — Uses table statistics to determine the most efficient physical execution path for SQL statements. ([source](https://h2database.com/html/performance.html))
- [Relational Database Management Systems](https://awesome-repositories.com/f/data-databases/relational-database-management-systems.md) — Provides a full JDBC-compliant relational database management system written in Java.
- [SQL Dialect Adapters](https://awesome-repositories.com/f/data-databases/sql-dialect-adapters.md) — Implements a dialect emulation layer to maintain compatibility with various other relational database systems.
- [B-Tree](https://awesome-repositories.com/f/data-databases/storage-engines/b-tree.md) — Uses a B-Tree page storage architecture to optimize disk-based data retrieval and updates.
- [Transaction Demarcation & Isolation](https://awesome-repositories.com/f/data-databases/transaction-management/transaction-demarcation-isolation.md) — Prevents data anomalies by supporting standard SQL transaction isolation levels. ([source](https://h2database.com/html/advanced.html))
- [Transaction Recovery Logs](https://awesome-repositories.com/f/data-databases/undo-logs/transaction-recovery-logs.md) — Prevents data loss by re-applying committed changes from transaction logs after a system failure. ([source](https://h2database.com/html/features.html))
- [JDBC Driver Implementations](https://awesome-repositories.com/f/data-databases/virtual-table-querying/external-table-querying/jdbc-external-table-connectors/jdbc-abstraction-layers/jdbc-driver-implementations.md) — Integrates with Java applications using standard JDBC drivers and connection URLs.
- [Write-Ahead Logging](https://awesome-repositories.com/f/data-databases/write-ahead-logging.md) — Implements write-ahead logging with undo and redo logs to ensure transactional atomicity and recovery.
- [Online Backups](https://awesome-repositories.com/f/data-databases/backup-recovery/online-backups.md) — Performs online backups by copying persisted data files while write operations are ongoing. ([source](https://h2database.com/html/mvstore.html))
- [Change Data Capture](https://awesome-repositories.com/f/data-databases/change-data-capture.md) — Retrieves the old, new, and final state of rows to capture data changes for external streaming or auditing. ([source](https://h2database.com/html/grammar.html))
- [Complex Data Types](https://awesome-repositories.com/f/data-databases/complex-data-types.md) — Supports non-scalar data structures including JSON, UUIDs, and enumerated types. ([source](https://h2database.com/html/datatypes.html))
- [SQL Exports](https://awesome-repositories.com/f/data-databases/csv-format-converters/sql-to-csv-exporters/sql-exports.md) — Converts database content into SQL scripts to facilitate data migration and restoration. ([source](https://h2database.com/html/migration-to-v2.html))
- [Backup Compression](https://awesome-repositories.com/f/data-databases/data-governance-modeling/data-management-governance/backup-recovery-systems/database-backup-restoration/backup-compression.md) — Creates transactionally consistent compressed zip files of database files for efficient backup and recovery. ([source](https://h2database.com/html/commands.html))
- [Data Integrity Constraints](https://awesome-repositories.com/f/data-databases/data-integrity-constraints.md) — Ensures data consistency through the enforcement of primary keys, foreign keys, and check constraints. ([source](https://h2database.com/html/grammar.html))
- [Geospatial Data Types](https://awesome-repositories.com/f/data-databases/data-querying/spatial-querying/geospatial-data-types.md) — Provides support for coordinate-based data structures and geometry objects using OGC formats. ([source](https://h2database.com/html/grammar.html))
- [Versioned Dataset Snapshots](https://awesome-repositories.com/f/data-databases/data-schema-management/schema-versioning/immutable-schema-snapshots/versioned-dataset-snapshots.md) — Creates copy-on-write snapshots of the data state to enable versioned reads and store rollbacks. ([source](https://h2database.com/html/mvstore.html))
- [JSON Persistence](https://awesome-repositories.com/f/data-databases/data-structures/json-persistence.md) — Stores RFC-compliant JSON text as byte arrays while preserving member order and structural integrity. ([source](https://h2database.com/html/datatypes.html))
- [Database Buffer Pool Management](https://awesome-repositories.com/f/data-databases/database-buffer-pool-management.md) — Adjusts memory allocated for frequently used data to optimize speed and resource consumption. ([source](https://h2database.com/html/features.html))
- [Table Lifecycle Management](https://awesome-repositories.com/f/data-databases/database-management-systems/database-systems-management/database-management/schema-designers/table-schemas/table-lifecycle-management.md) — Provides full lifecycle management for tables, including creation, renaming, alteration, and deletion. ([source](https://h2database.com/html/commands.html))
- [Relational Database Metadata Inspectors](https://awesome-repositories.com/f/data-databases/database-management-systems/database-systems-management/database-management/schema-designers/table-schemas/table-metadata-inspection/live-metadata-retrievals/relational-database-metadata-inspectors.md) — Implements standard-compliant schema queries to retrieve information about tables, columns, and indexes. ([source](https://h2database.com/html/migration-to-v2.html))
- [Execution Plan Analysis](https://awesome-repositories.com/f/data-databases/database-query-execution/execution-plan-analysis.md) — Inspects internal execution plans and scan counts to optimize index usage and query performance. ([source](https://h2database.com/html/performance.html))
- [Corruption Recovery Utilities](https://awesome-repositories.com/f/data-databases/database-recovery/corruption-recovery-utilities.md) — Offers utilities to extract data and transaction logs from corrupted files into SQL scripts for restoration. ([source](https://h2database.com/html/advanced.html))
- [Windowed Row Accessors](https://awesome-repositories.com/f/data-databases/database-schema-mapping/row-mapping-logic/row-record-access/windowed-row-accessors.md) — Retrieves values from preceding or following rows within a partition using window offsets. ([source](https://h2database.com/html/functions-window.html))
- [Database Triggers](https://awesome-repositories.com/f/data-databases/database-triggers.md) — Provides database triggers to execute automated logic in response to data modifications on tables. ([source](https://h2database.com/html/commands.html))
- [Database Emulators](https://awesome-repositories.com/f/data-databases/document-relational-databases/database-emulators.md) — Mimics the behavior and syntax of other database engines to maintain compatibility with existing applications. ([source](https://h2database.com/html/cheatSheet.html))
- [Embedded Database Server Modes](https://awesome-repositories.com/f/data-databases/embedded-database-server-modes.md) — Supports a mixed mode that allows simultaneous local in-process access and remote network access. ([source](https://h2database.com/html/features.html))
- [Page-Based Storage](https://awesome-repositories.com/f/data-databases/file-based-storage-systems/page-based-storage.md) — Utilizes a page-based storage architecture with B-tree structures to optimize disk access and allocation. ([source](https://h2database.com/html/architecture.html))
- [Full Text Search](https://awesome-repositories.com/f/data-databases/full-text-search.md) — Provides keyword searching across large volumes of text using native storage or Lucene indexing. ([source](https://cdn.jsdelivr.net/gh/h2database/h2database@master/README.md))
- [Connection Pooling](https://awesome-repositories.com/f/data-databases/high-concurrency-database-access/connection-pooling.md) — Maintains a pool of reusable database connections to reduce the overhead of session establishment. ([source](https://h2database.com/html/cheatSheet.html))
- [Identity Column Generation](https://awesome-repositories.com/f/data-databases/identity-column-generation.md) — Automatically generates unique row identifiers using identity columns and sequences. ([source](https://h2database.com/html/migration-to-v2.html))
- [Virtual View Management](https://awesome-repositories.com/f/data-databases/materialized-views/virtual-view-management.md) — Supports the creation and recompilation of both virtual tables and materialized views. ([source](https://h2database.com/html/commands.html))
- [Binary Object Storage](https://awesome-repositories.com/f/data-databases/object-storage-services/binary-object-chunkers/binary-object-storage.md) — Supports the storage and retrieval of large binary data objects using BLOB types. ([source](https://h2database.com/html/datatypes.html))
- [ORM Integrations](https://awesome-repositories.com/f/data-databases/orm-integrations.md) — Facilitates the connection of object-relational mapping frameworks to the database using native dialects. ([source](https://h2database.com/html/tutorial.html))
- [Pluggable Storage Backends](https://awesome-repositories.com/f/data-databases/persistent-storage-backends/pluggable-storage-backends.md) — Supports pluggable storage backends allowing data to be persisted in memory, on disk, or within compressed zip files. ([source](https://h2database.com/html/advanced.html))
- [Persistent Storage Engines](https://awesome-repositories.com/f/data-databases/persistent-storage-engines.md) — Includes a low-level persistent storage engine with capabilities for checkpoints and database compaction. ([source](https://h2database.com/html/commands.html))
- [Row Deletions](https://awesome-repositories.com/f/data-databases/row-deletions.md) — Allows the removal of specific records from tables using conditional filters and limits. ([source](https://h2database.com/html/commands.html))
- [Bucket-Based Distribution](https://awesome-repositories.com/f/data-databases/row-groupings/bucket-based-distribution.md) — Divides rows into equal-sized buckets and returns the group number for each row via window functions. ([source](https://h2database.com/html/functions-window.html))
- [Row Insertions](https://awesome-repositories.com/f/data-databases/row-insertions.md) — Enables the addition of new records to tables, including the ability to pipe results from other queries. ([source](https://h2database.com/html/commands.html))
- [Row Update Operations](https://awesome-repositories.com/f/data-databases/row-update-operations.md) — Provides the capability to modify existing values within a table based on specified criteria. ([source](https://h2database.com/html/commands.html))
- [Database Memory Indexing](https://awesome-repositories.com/f/data-databases/search-indexing/in-memory-indexing/database-memory-indexing.md) — Employs hash-based memory structures to speed up direct lookups for both persistent and volatile tables. ([source](https://h2database.com/html/performance.html))
- [Spatial Aggregation Functions](https://awesome-repositories.com/f/data-databases/spatial-data-extensions/spatial-aggregation-functions.md) — Computes the minimum bounding box that encloses a collection of geometry values using spatial aggregation. ([source](https://h2database.com/html/functions-aggregate.html))
- [Spatial Indexing](https://awesome-repositories.com/f/data-databases/spatial-indexing.md) — Provides spatial indexing capabilities to efficiently query geometric data using R-tree implementations. ([source](https://h2database.com/html/mvstore.html))
- [SQL Script Execution](https://awesome-repositories.com/f/data-databases/sql-script-execution.md) — Restores database schemas and data by executing SQL scripts from files or URLs. ([source](https://h2database.com/html/commands.html))
- [Binary Data Streaming](https://awesome-repositories.com/f/data-databases/storage-abstraction/file-storage-services/binary-data-streaming.md) — Implements binary data streaming by splitting large objects into blocks for random access. ([source](https://h2database.com/html/mvstore.html))
- [Storage Abstractions](https://awesome-repositories.com/f/data-databases/storage-abstractions.md) — Provides a unified interface to manage data across diverse media such as memory, disk, and zip files. ([source](https://h2database.com/html/architecture.html))
- [Stored Procedures](https://awesome-repositories.com/f/data-databases/stored-procedures.md) — Implements stored procedures to execute user-defined logic directly within the database engine. ([source](https://h2database.com/html/security.html))
- [Upsert Operations](https://awesome-repositories.com/f/data-databases/upsert-operations.md) — Provides atomic upsert operations that either insert a new record or update an existing one based on a key. ([source](https://h2database.com/html/commands.html))
- [User-Defined Functions](https://awesome-repositories.com/f/data-databases/user-defined-functions.md) — Provides the ability to implement custom logic as functions that can be called within SQL queries. ([source](https://h2database.com/html/commands.html))
- [Web-Based Database Clients](https://awesome-repositories.com/f/data-databases/web-based-database-clients.md) — Includes a browser-based management console for executing SQL commands and administering database schemas.
- [Web-Based SQL Consoles](https://awesome-repositories.com/f/data-databases/web-based-sql-consoles.md) — Provides a browser-based GUI for executing SQL queries and managing database schemas. ([source](https://h2database.com/html/tutorial.html))
- [Window Functions](https://awesome-repositories.com/f/data-databases/window-functions.md) — Implements SQL window functions for performing calculations across sets of rows related to the current row. ([source](https://h2database.com/html/grammar.html))

### Networking & Communication

- [Remote Server Connectivity](https://awesome-repositories.com/f/networking-communication/remote-server-connectivity.md) — Enables remote data management by connecting to a standalone server via TCP/IP. ([source](https://h2database.com/html/cheatSheet.html))
- [Database Server-Client Models](https://awesome-repositories.com/f/networking-communication/tcp-socket-programming/database-server-client-models.md) — Supports a server-client model allowing remote applications to access data via TCP/IP sockets.

### Security & Cryptography

- [User Role Management](https://awesome-repositories.com/f/security-cryptography/identity-access-management/identity-management/user-management/user-role-management.md) — Manages the lifecycle of database users and security roles, including creation and modification. ([source](https://h2database.com/html/commands.html))
- [Password Hashing Utilities](https://awesome-repositories.com/f/security-cryptography/security/cryptography-and-secrets/cryptographic-primitives-management/password-hashing-utilities.md) — Protects user credentials by storing them as secure, irreversible cryptographic hashes. ([source](https://h2database.com/html/advanced.html))
- [Data Encryption](https://awesome-repositories.com/f/security-cryptography/data-encryption.md) — Secures stored information using AES encryption to ensure data confidentiality. ([source](https://h2database.com/html/functions.html))
- [Database Page Encryption](https://awesome-repositories.com/f/security-cryptography/full-disk-encryption/database-page-encryption.md) — Protects data at rest by encrypting database pages using AES-128 and SHA-256. ([source](https://cdn.jsdelivr.net/gh/h2database/h2database@master/README.md))
- [SSL/TLS Connection Security](https://awesome-repositories.com/f/security-cryptography/ssl-tls-connection-security.md) — Encrypts network traffic between clients and the server using SSL/TLS sockets. ([source](https://h2database.com/html/advanced.html))

### Web Development

- [Database Connectivity Drivers](https://awesome-repositories.com/f/web-development/database-connectivity-drivers.md) — Provides standard JDBC drivers and connection URLs to link Java applications to the database. ([source](https://h2database.com/html/tutorial.html))

### Artificial Intelligence & ML

- [Window Ranking Functions](https://awesome-repositories.com/f/artificial-intelligence-ml/search-and-ranking-algorithms/window-ranking-functions.md) — Provides window ranking functions to assign row numbers, ranks, and percentiles based on ordering and partitioning. ([source](https://h2database.com/html/functions-window.html))

### Development Tools & Productivity

- [Database Operational Settings](https://awesome-repositories.com/f/development-tools-productivity/global-configurations/database-operational-settings.md) — Provides global configuration settings for database engine behavior, including cache size, lock timeouts, and isolation levels. ([source](https://h2database.com/html/commands.html))

### Operating Systems & Systems Programming

- [Off-Heap Memory Managers](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/process-and-memory-management/memory-management/allocation-strategies/dynamic-memory-allocation/custom-memory-allocators/off-heap-image-allocators/off-heap-memory-managers.md) — Manages large datasets in off-heap memory to reduce Java garbage collection pause times.

### Programming Languages & Runtimes

- [Database Function Registrations](https://awesome-repositories.com/f/programming-languages-runtimes/script-function-registration/database-function-registrations.md) — Allows registering Java methods as stored procedures to execute complex logic within SQL statements. ([source](https://h2database.com/html/features.html))

### Scientific & Mathematical Computing

- [Spatial Geometry Types](https://awesome-repositories.com/f/scientific-mathematical-computing/data-modeling-processing/geospatial-and-location-services/spatial-data-processing/spatial-geometry-libraries/spatial-geometry-types.md) — Provides native geometry types for points, lines, and polygons with spatial reference identifiers. ([source](https://h2database.com/html/datatypes.html))

### Software Engineering & Architecture

- [Compatibility Mode Parsing](https://awesome-repositories.com/f/software-engineering-architecture/syntax-parsing-engines/compatibility-mode-parsing.md) — Adjusts the SQL parser to support legacy syntax or vendor-specific behaviors through compatibility modes. ([source](https://h2database.com/html/migration-to-v2.html))

### Testing & Quality Assurance

- [SQL Dialect Emulation Testing](https://awesome-repositories.com/f/testing-quality-assurance/sql-dialect-emulation-testing.md) — Emulates various database dialects and syntax behaviors to test application compatibility across different RDBMS vendors.
