Build Systems
Cache Solutions
Charting & Reporting
Chat Servers
Code Analyzers
Code Beautifiers
Code Coverage
Connection Pools
EJB Servers
Expression Languages
Forum Soft
General Purpose
HTML Parsers
Inversion of Control
Issue Tracking
J2EE Frameworks
JSP Tag Libraries
Job Schedulers
Logging Tools
Mail Clients
Network Clients
Network Servers
PDF Libraries
Parser Generators
RSS & RDF Tools
Rule Engines
SQL Clients
Scripting Languages
Search Engines
Source Control
Template Engines
Testing Tools
Text Processing
UML & Modeling
Web Frameworks
Web Mail
Web Servers
Web Services
Web Testing
Wiki Engines
XML Parsers
XML UI Toolkits

Open Source Database Engines in Java

Hypersonic SQL

hsqldb is a relational database engine written in Java, with a JDBC driver, supporting a rich subset of ANSI-92 SQL (BNF tree format). It offers a small (less than 160k), fast database engine which offers both in memory and disk based tables. Embedded and server modes are available. Additionally, it includes tools such as a minimal web server, in-memory query and management tools (can be run as applets) and a number of demonstration examples.

Go To Hypersonic SQL

Mckoi SQL Database

Mckoi SQL Database is optimized to run as a client/server database server for multiple clients, however it can also be embedded in an application as a stand-alone database. It is highly multi-threaded and features an extendable object-oriented engine.

Go To Mckoi SQL Database

Quadcap Embeddable Database

QED, the Quadcap Embeddable Database. QED is a fast, small, pure Java, relational database, implementing the SQL 92 standard, with transactions and resilient failure recovery. QED has a novel open source license permitting free use of QED by all and free redistribution in other open source projects.

Go To Quadcap Embeddable Database


Axion is a small, fast, open source relational database system (RDBMS) supporting SQL and JDBC written in and for the Java programming language.

Go To Axion


The yaRDBMS (yet another relational database management system) is a Java based, transactional highly concurrent relational database management system with advanced query optimization, indexing features and crash recovery.



A very lightweight 100% Java text SQL engine that includes a JDBC driver

Go To TinySQL


Ashpool is a lightweight XML Database written in Java(tm). It's goal is to use standard SQL92 syntax to query, add, update, and delete XML documents via a JDBC driver. The XML documents must hold to a table like structure. The reason for the table structure restriction is that SQL was designed to query table data not hierarchical data.

Go To Ashpool

Excel JDBC Driver

JDBC Driver for the spreadsheets Excel, StarOffice and OpenOffice. Turn a directory with spreadsheets into a database. xls filenames become database schema's, sheets become tables. Use a rich subset of SQL to create sheets and query sheets. Join sheets, query database data and store it into excel or fill database tables with spreadsheets.

Go To Excel JDBC Driver

Apache Derby

Apache Derby, an Apache DB subproject, is an open source relational database implemented entirely in Java and available under the Apache License, Version 2.0. Some key advantages include: * Derby has a small footprint -- about 2 megabytes for the base engine and embedded JDBC driver. * Derby is based on the Java, JDBC, and SQL standards. * Derby provides an embedded JDBC driver that lets you embed Derby in any Java-based solution. * Derby also supports the more familiar client/server mode with the Derby Network Client JDBC driver and Derby Network Server. * Derby is easy to install, deploy, and use.

Go To Apache Derby


db4o (database for objects) is the open source object database for Java. Features include: fast native Java object persistence, ACID transactions, query-by-example, S.O.D.A. object query API, automatic class schema recognition, small footprint.

Go To db4o


One$DB is a version of Daffodil DB , a J2EE-certified, JDBC 3.0 and SQL-99 compliant Java database. It is available in both Network and Embedded editions and has been designed to handle complex computing environments that demand a robust, scalable and feature-rich RDBMS that can operate across platforms.

Go To One$DB


The Ozone Database Project is a open initiative for the creation of an open source, Java based, object-oriented database management system. Ozone includes a fully W3C compliant DOM implementation that allows you to store XML data. You can use any XML tool to provide and access these data. Support classes for Apache Xerces-J and Xalan-J are included.

Go To Ozone


H2 is a SQL database engine written in Java. JDBC and ODBC drivers, embedded and client/server mode. Clustering is supported. In-memory and disk based tables. A web console application is included.

Go To H2

SmallSQL Database

SmallSQL is a 100% pure Java DBMS, a relational database for Java desktop applications. It has a JDBC 3.0 interface and offering many ANSI SQL 92 and ANSI SQL 99 features. It is very small and fast because it does not have a network interface.

Go To SmallSQL Database

Metanotion BlockFile

A 100% pure Java, lightweight, single file embeddable database. Functionally similar to a cross between SQLite and BerkeleyDB. Developed for use with PDA and Mobile applications.

Go To Metanotion BlockFile


JODB (Java Objects Database) is an open source object-oriented database. The database uses a cache based on Soft References to avoid using too much memory when the application requires it. The queries are optimized to use the minimal possible object instantiations during the search to avoid excessive garbage collection.



Jalisto is a lightweight transactional database written entirely in Java. Jalisto comes in two versions: Jalisto SE (Standard Edition) and Jalisto ME (Micro Edition). Jalisto SE is an ideal solution for embedded and stand-alone systems. Jalisto ME, which will be available in Q4, targets mobile environments including cell phones, PDAs, and is compatible with the Java 2 Platform Micro Edition (J2ME).

Go To Jalisto


AcornDB is a high performance, small footprint, transactional object oriented database written entirely in Java. It stores data in the application's native format, so no runtime data translation is required. AcornDB supports full ACID transactions and recovery. It provides an easy-to-use interface like query-by-example, object query API, automatic class schema recognition allowing programmers to store and retrieve information quickly, simply and reliably. AcornDB enabling high concurrency and speed while providing ACID transactions. AcornDB efficiently caches the data in memory, without exceeding application-specified limits. In this way works with an application to use available JVM resources while providing access to very large data sets.

Go To AcornDB


BlobDB is a JDBC/SQL like database engine build on Google App Engine datastore. BlobDB has a build in WebService for clients that are not running on Google App Engine. BlobDB is very small and can be embed in non GAE java application as \"in memory only\" database.

Go To BlobDB


jiql is a Java database for Cloud computing. The database is accessed via a jdbc client. The data is actually stored in a cloud-based data store, such as Google's BigTable. The fact is Google App Engine at present only supports python. Java programmers need not be excluded, as jiql provides a way to at least utilize Google's BigTable. By uploading the jiql python controller (jiql.py) to Google App Engine (GAE), the jiql.py acts as a gateway between the jiql database engine and Google's BigTable (GBT). So a Java application, using standard JDBC calls to the jiql JDBC client, is able to store critical data in GBT. As the DataStore sits in the cloud, you essentially have a solution for distributed database access. Thus, although you may not be able to host a JAVA program on GAE, you can still use the Data Store, which is probably the most important aspect of cloud-computing - that is scalability and high availability.

Go To jiql


Neo4j is a graph database. It is an embedded, disk-based, fully transactional Java persistence engine that stores data structured in graphs rather than in tables. A graph (mathematical lingo for a network) is a flexible data structure that allows a more agile and rapid style of development.

Go To Neo4j

Java is a trademark or registered trademark of Sun Microsystems, Inc. in the United States and other countries. This site is independent of Sun Microsystems, Inc.