The following documentation of MonetDBJavaLite is brief. The full details of the documentation can be found on its GitHub repository.
IMPORTANT Before any further reading, remember that this software might crash in JVM-native border crossing, although testing has been made on it :) To be 100% safe you can run MonetDBJavaLite in a sub-process inside the JVM, so if it crashes, your application in the main process will still be up!
MonetDBJavaLite is a Java library that allows the integration of MonetDB, a column-wise and high-scale OLAP relational database in the JVM.
This library allows to retrieve results from SQL statements in plain Java primitives/objects, while being JDBC compliant, as well as portable to other JVM programming languages.
Unlike a traditional socket connection between a database server and client, in an embedded connection, both the client and the server share the same process. This approach allows the client to get the results immediately from the server without any serialization or IO, thus obtaining more performance.
The embedded MonetDB database is loaded through a native C shared library by JNI at the bootstrap of the process, thus the database runs natively for further performance.
At the same time, the existing JDBC driver for MonetDB was extended to accommodate both a MAPI (regular socket connection) and an embedded connection, while aiming at the simplicity of the integration of both connections.
The current version for `monetdb-java-lite` is 2.37 and `monetdb-jdbc-new` is 2.36
There are two jars distributed: The new MonetDB JDBC driver jar (
monetdb-jdbc-new-<version>.jar), and the
MonetDBJavaLite jar (
monetdb-java-lite-<version>.jar). The former can be used independently, if only MAPI JDBC
connections are desired. The latter contains the embedded server code. For both the Embedded API and the Embedded JDBC
connections, the second jar is also required in the
monetdb-jdbc-new-<version>.jar is still compatible with JVM 7, however the
requires JVM 8 to run, as we found problems running in the JVM 8 when we compiled to target JVM 7
(the problem might be related to the JVM rather than us). Currently the
only supports 64-bit architectures.
monetdb-jdbc-new-<version>.jar is both CPU and Operating System independent. ON the other hand, the
monetdb-java-lite-<version>.jar contains the JNI code for 64-bit Linux, Windows and MacOS X.
Both jars can be obtained through the download section of our section of our website.
Starting on version
2.30, both jars can be obtained from the Maven Central repository. Note that
monetdb-java-lite depends on
monetdb-jdbc-new, so only the second one is required to list in
the project's dependencies.
<dependency> <groupId>monetdb</groupId> <artifactId>monetdb-jdbc-new</artifactId> <version>2.36</version> </dependency>
<dependency> <groupId>monetdb</groupId> <artifactId>monetdb-java-lite</artifactId> <version>2.37</version> </dependency>
Packed in the
src/main/resources/libs directory of the
monetdb-java-lite-<version>.jar there are several
directories, containing the C-library of MonetDB for each supported operating system. The extension of the library
should either be the default for a dynamic libraries on the user's OS or the generic (for JNI)
.jnilib. For this
monetdb-java-lite-<version>.jar size is much larger than the average size of a
.jar file. If the user
wants to save space, he might delete the unwanted versions of the native library in the
directory, although it's not recommended to do so.
In an IDE or when Maven runs tests from the command line, the application will use the unpacked library, already present
src/main/resources/libs directory (since there isn't a
.jar yet). When running "in production" - from a
application will stream copy the library to a temporary directory, and load the library from there. This is needed, since one
cannot use the packed libraries in a
This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.
Copyright 1997 - July 2008 CWI, August 2008 - 2018 MonetDB B.V.
The MonetDBJavaLite is being supported by Pedro Ferreira, a developer
at MonetDBSolutions. Feel free to create an issue on
Bugzilla or GitHub, create a pull request or
just send an email. You can also create a question on
Stack Overflow with the tag
As you could see I like emoticons! :) Just one more :)
Name Last modified Size Description
Parent Directory - monetdb-jdbc-new-2.37-SNAPSHOT.jar 2018-07-30 14:18 152K monetdb-jdbc-new-2.36.jar 2018-05-19 12:59 154K monetdb-jdbc-new-2.35.jar 2018-03-23 11:58 152K monetdb-jdbc-new-2.34.jar 2018-03-21 14:08 151K monetdb-jdbc-new-2.33.jar 2018-03-02 16:57 151K monetdb-jdbc-new-2.32.jar 2017-10-09 16:54 150K monetdb-jdbc-new-2.31.jar 2017-08-16 13:30 148K monetdb-jdbc-new-2.30.jar 2017-07-12 18:56 148K monetdb-jdbc-new-2.25.jar 2017-07-10 15:08 146K monetdb-jdbc-new-2.24.jar 2017-05-16 15:18 146K monetdb-java-lite-2.38-SNAPSHOT.jar 2018-08-03 10:37 6.0M monetdb-java-lite-2.37.jar 2018-05-19 12:45 5.6M monetdb-java-lite-2.36.jar 2018-03-23 11:58 6.4M monetdb-java-lite-2.35.jar 2018-03-21 13:05 6.4M monetdb-java-lite-2.34.jar 2018-03-02 16:57 6.4M monetdb-java-lite-2.33.jar 2017-10-09 16:18 6.4M monetdb-java-lite-2.32.jar 2017-08-16 13:30 6.7M monetdb-java-lite-2.31.jar 2017-07-13 18:01 6.5M monetdb-java-lite-2.30.jar 2017-07-12 18:55 6.5M monetdb-java-lite-2.25.jar 2017-07-10 15:08 6.5M monetdb-java-lite-2.24.jar 2017-05-16 15:19 6.4M javadocs/ 2018-08-03 10:39 -