MapDB初探
MapDB是一個開源,最快的Java資料庫,效能可與java.util 集合相當。
Maven依賴
<dependency>
<groupId>org.mapdb</groupId>
<artifactId>mapdb</artifactId>
<version>VERSION</version>
</dependency>
快照庫
<repositories>
<repository>
<id>sonatype-snapshots</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.mapdb</groupId>
<artifactId>mapdb</artifactId>
<version>VERSION</version>
</dependency>
</dependencies>
maven hello world
//import org.mapdb.*
DB db = DBMaker.memoryDB().make();
ConcurrentMap map = db.hashMap("map").createOrOpen();
map.put("something", "here");
DB db = DBMaker.fileDB("file.db").make();
ConcurrentMap map = db.hashMap("map").createOrOpen();
map.put("something", "here");
db.close();
MapDB使用泛型序列化
DB db = DBMaker.fileDB("file.db").fileMmapEnable().make();
ConcurrentMap<String,Long> map =
db.hashMap("map", Serializer.STRING, Serializer.LONG)
.createOrOpen();
map.put("something", 111L);
db.close();
DBMaker使用
可以使用許多*DB 靜態方法,例如DBMaker.fileDB()。MapDB具有很多格式和模式,每個xxxDB()使用不同的模式:memoryDB()開啟一個由byte [] 陣列支援的記憶體資料庫,
appendFileDB()開啟一個使追加的日誌檔案等。
DB db = DBMaker.fileDB("/some/file")
//TODO encryption API
//.encryptionEnable("password")
.make();
開啟並建立集合
create() 建立新的集合。 如果集合存在,將扔出異常。
open() 開啟存在的集合。 如果集合不存在,將扔出異常。
createOrOpen() 如果存在就開啟, 否則建立。
NavigableSet<String> treeSet =
db.treeSet("treeSet").maxNodeSize(112).
createOrOpen();
事務
DB具有處理事務生命週期的方法: commit() , rollback() and close() .
ConcurrentNavigableMap<Integer,String> map =
db.treeMap("collectionName", Serializer.INTEGER, Serializer.STRING).
createOrOpen();
map.put(1,"one");
map.put(2,"two");
//map.keySet() is now [1,2] even before commit
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();
相關文章
- Puppeteer 初探
- gRPC 初探RPC
- ## RATreeView 初探View
- 初探Firewalld
- Serverless初探Server
- Mobx 初探
- 初探PWA
- 初探TCPTCP
- 初探 BaconJSJS
- 初探 TypeScriptTypeScript
- ECharts 初探Echarts
- Quantum 初探
- 初探 XSS
- 初探canvasCanvas
- puppeteer初探
- Promise初探Promise
- websoctet初探Web
- 初探 Recompose
- jsbridge初探JS
- Nginx 初探Nginx
- Deno 初探
- ELK初探
- Quartz初探quartz
- 初探IndexedDBIndex
- jQuery初探jQuery
- Docker初探Docker
- Redis初探Redis
- angr初探
- Vue初探Vue
- Gitee初探Gitee
- CSS Modules 初探CSS
- MySQL 索引初探MySql索引
- Vuforia - AR初探
- Flutter初探分析Flutter
- Web Worker 初探Web
- Spring Boot 初探Spring Boot
- React Fiber 初探React
- Golang modules 初探Golang