hello MapDB

一,介绍

MapDB是一个快速、易用的嵌入式Java数据库引擎,它提供了基于磁盘或者堆外(off-heap允许Java直接操作内存空间, 类似于C的malloc和free)存储的并发的Maps、Sets、Queues。MapDB的前身是JDBM,已经有15年的历史。MapDB支持ACID事务、MVCC隔离,它的jar包只有200KB,且无其它依赖,非常轻量。MapDB目前的版本是1.0.5,相对来说功能已经稳定,并有全职的开发者支持开发。

二,官网

 http://www.mapdb.org


三,例子

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();

参考:http://www.oschina.net/p/mapdb

         http://www.oschina.net/news/53844/mapdb-java

       

### MapDB 使用指南 MapDB 是一个开源的嵌入式 Java 数据库引擎,支持并发的 `Map`、`Set` 和 `Queue`,并可以将数据存储在磁盘或堆外内存中。以下是一些关于 MapDB 的使用指南和示例代码。 #### 创建和打开数据库 MapDB 提供了多种模式来创建和打开数据库,每种模式对应不同的存储方式。例如,`fileDB()` 方法用于创建基于文件的数据库,而 `memoryDB()` 方法则用于创建基于内存的数据库[^1]。 ```java // 创建基于文件的数据库 DB db = DBMaker.fileDB("path/to/database").make(); // 创建基于内存的数据库 DB db = DBMaker.memoryDB().make(); ``` #### 配置选项 在创建数据库时,可以通过链式调用添加各种配置选项。例如,启用加密、设置缓存大小等[^2]。 ```java DB db = DBMaker.fileDB("path/to/database") .encryptionEnable("password") // 启用加密 .cacheSize(1000) // 设置缓存大小 .make(); ``` #### 创建集合 一旦数据库被打开,就可以通过 `db` 对象创建各种集合,如 `HashMap` 或 `HashSet`[^2]。 ```java // 创建一个 HashMap HTreeMap<String, String> map = db.hashMap("mapName", Serializer.STRING, Serializer.STRING).createOrOpen(); // 创建一个 HashSet HashSet<String> set = db.hashSet("setName", Serializer.STRING).createOrOpen(); ``` #### 数据库生命周期管理 可以通过调用 `commit()`、`rollback()` 和 `close()` 方法来管理数据库的生命周期。 ```java // 提交事务 db.commit(); // 回滚事务 db.rollback(); // 关闭数据库 db.close(); ``` ### MapDB 下载 MapDB 的官方项目地址为 [https://gitcode.com/gh_mirrors/ma/mapdb](https://gitcode.com/gh_mirrors/ma/mapdb),用户可以从该地址下载最新版本的源码或二进制文件[^4]。 此外,也可以通过 Maven 仓库直接引入依赖: ```xml <dependency> <groupId>org.mapdb</groupId> <artifactId>mapdb</artifactId> <version>3.0.8</version> <!-- 请根据需要选择版本 --> </dependency> ``` ### 示例代码 以下是一个完整的 MapDB 示例代码,展示了如何创建数据库、插入数据以及查询数据[^2]。 ```java import org.mapdb.*; public class MapDBExample { public static void main(String[] args) { // 创建基于文件的数据库 DB db = DBMaker.fileDB("example.db").make(); // 创建一个 HashMap HTreeMap<String, String> map = db.hashMap("users", Serializer.STRING, Serializer.STRING).createOrOpen(); // 插入数据 map.put("user1", "John Doe"); map.put("user2", "Jane Smith"); // 查询数据 System.out.println("User1: " + map.get("user1")); System.out.println("User2: " + map.get("user2")); // 提交事务 db.commit(); // 关闭数据库 db.close(); } } ``` ### 常见问题解决 在使用 MapDB 时可能会遇到一些问题,例如 `ArrayIndexOutOfBoundsException` 异常。这通常是由于数据库文件损坏或版本不兼容引起的[^5]。建议检查数据库文件的完整性,并确保使用的 MapDB 版本与代码兼容。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值