MapDB是一个快速、易用的嵌入式Java数据库引擎,它提供了基于磁盘或者堆外(off-heap允许Java直接操作内存空间, 类似于C的malloc和free)存储的并发的Maps、Sets、Queues。MapDB的前身是JDBM,已经有15年的历史。MapDB支持ACID事务、MVCC隔离,它的jar包只有200KB,且无其它依赖,非常轻量。MapDB目前的版本是1.0.5,相对来说功能已经稳定,并有全职的开发者支持开发。
示例代码:
import org.mapdb.*; // configure and open database using builder pattern. // all options are available with code auto-completion. DB db = DBMaker.newFileDB(new File("testdb")) .closeOnJvmShutdown() .encryptionEnable("password") .make(); // open existing an collection (or create new) ConcurrentNavigableMapmap = db.getTreeMap("collectionName"); map.put(1, "one"); map.put(2, "two"); // map.keySet() is now [1,2] db.commit(); //persist changes into disk map.put(3, "three"); // map.keySet() is now [1,2,3] db.rollback(); //revert recent changes // map.keySet() is now [1,2] db.close();