The first time I knew there is Java database is when I use JBoss. In JBoss there is a Java database that can be accessed through JDBC API called Hypersonic SQL. Hypersonic SQL now named HSQL and can be download from
When I learn this database it seems lacking in features also this database only store it’s data to file when JBoss shutdown. This database stored and processed all of its data in memory. This means if you have hundreds MB of data then you need hundreds MB of memory. My conclusion is this database cannot be used in serious business application.
Second Java database that I know is Cloudscape the database included in J2EE SDK from Sun. Unfortunately this database is commercial. So I’m reluctant to learn it.
McKoi is the third Java database that I know. It is at McKoi I found a satisfying Java database. It’s feature is not many but enough to be called RDBMS. Features of McKoi:
- File based so memory eficient
- Memory use can be configured but can be dynamic too
- Use automatic index this means every field in the tabel is indexed. This removes the need for tuning with consquence slower insert for table with many field. This feature can also be configured.
- Relational integrity: Primary Key, Foreign Key, dll.
- Transaction facility
- Auto-number field facility
- Hot-backup which mean you can back-up while the database still on.
- Can be used in embedded or client/server mode
One of the biggest benefit of McKoi is when you use it as embedded database. With this method our application can be given to client in the form of WAR or JAR file and can be run immediately. No more steps to install database, creating table, filling table with initial value and data source configuration. Of course if you use embedded McKoi for commercial application you need commercial licence because McKoi licence is GPL. But if we use McKoi in GPL application we do not need to buy license.