本文整理汇总了Java中org.mapdb.DBMaker.newFileDB方法的典型用法代码示例。如果您正苦于以下问题:Java DBMaker.newFileDB方法的具体用法?Java DBMaker.newFileDB怎么用?Java DBMaker.newFileDB使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.mapdb.DBMaker
的用法示例。
在下文中一共展示了DBMaker.newFileDB方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: constructDB
import org.mapdb.DBMaker; //导入方法依赖的package包/类
private static DB constructDB(String dbFile) {
DB db;
try{
DBMaker dbMaker = DBMaker.newFileDB(new File(dbFile));
db = dbMaker
.transactionDisable()
.mmapFileEnable()
.asyncWriteEnable()
.compressionEnable()
// .cacheSize(1024 * 1024) this bloats memory consumption
.make();
return db;
} catch (ExecutionError | IOError | Exception e) {
LOG.error("Could not construct db from file.", e);
return null;
}
}
示例2: createDBMakerInstance
import org.mapdb.DBMaker; //导入方法依赖的package包/类
private DBMaker createDBMakerInstance(Map<String, String> configuration) throws StorageBackendException {
String modeProperty = configuration.get(PROPERTY_KEY_OPERATION_MODE);
String filepathProperty = configuration.get(PROPERTY_KEY_DB_FILE);
checkNotNull(filepathProperty, "Database file must be specified with property" + PROPERTY_KEY_DB_FILE);
OperationMode operationMode = OperationMode.valueOf(StringUtils.upperCase(modeProperty));
LOGGER.info("Initializing MapDB storage backend in {} mode", operationMode);
switch (operationMode) {
case FILE:
Path path = Paths.get(filepathProperty);
LOGGER.info("Using MapDB database file '{}'", path.toAbsolutePath().toString());
return DBMaker.newFileDB(path.toFile());
case TEMPORARY:
return DBMaker.newMemoryDB();
default:
throw new StorageBackendException("Unknown operation mode: " + operationMode);
}
}
示例3: init
import org.mapdb.DBMaker; //导入方法依赖的package包/类
private void init() {
DBMaker maker;
if (file == null)
maker = DBMaker.newMemoryDB();
else {
if (overwrite)
wipe(file);
maker = DBMaker.newFileDB(new File(file));
maker = maker.cacheSize(cache_size);
if (async) {
maker = maker.asyncWriteEnable();
maker = maker.asyncWriteFlushDelay(10000);
}
if (mmap)
maker = maker.mmapFileEnableIfSupported();
if (compression)
maker = maker.compressionEnable();
if (snapshot)
maker = maker.snapshotEnable();
if (notxn)
maker = maker.transactionDisable();
}
db = maker.make();
if (!db.exists("idmap"))
idmap = db.createHashMap("idmap")
.valueSerializer(new RecordSerializer())
.make();
else
idmap = db.getHashMap("idmap");
}
示例4: build
import org.mapdb.DBMaker; //导入方法依赖的package包/类
public MicroDB build(File path) throws IOException {
DBMaker mapdbBuilder = DBMaker.newFileDB(path);
if(mCacheSize != null) {
mapdbBuilder.cacheSize(mCacheSize);
}
DB db = mapdbBuilder.make();
MapDBDriver driver = new MapDBDriver(db);
return new MicroDB(driver, mSchemaVersion, mCallback, mConstructorMap);
}
示例5: onInit
import org.mapdb.DBMaker; //导入方法依赖的package包/类
@Override
public void onInit() {
if (LOG.isTraceEnabled()) {
LOG.trace("Initializing the '"
+ MapDbAuthorizingRealm.class.getSimpleName() + "'.");
}
super.onInit();
// create the maker of the database and create it
final DBMaker<?> maker = DBMaker.newFileDB(location);
maker.cacheHardRefEnable();
maker.cacheLRUEnable();
maker.cacheSize(1000);
maker.closeOnJvmShutdown();
db = maker.make();
// create the maker for the specific maps of users and roles
final HTreeMapMaker usersMapMaker = db.createHashMap("users");
final HTreeMapMaker rolesMapMaker = db.createHashMap("roles");
this.users = usersMapMaker.makeOrGet();
this.roles = rolesMapMaker.makeOrGet();
// disable any caching
setCachingEnabled(false);
setCacheManager(null);
// add a role resolver
setRolePermissionResolver(new RolePermissionResolver() {
@Override
public Collection<Permission> resolvePermissionsInRole(
final String role) {
final SimpleRole r = roles.get(role);
if (r == null) {
return null;
} else {
return r.getPermissions();
}
}
});
checkAdministrator();
}
示例6: CachingRemoteConnector
import org.mapdb.DBMaker; //导入方法依赖的package包/类
/**
* Creates a connector that caches items read from the server
* @param delegate the underlying connector
* @param cacheFile a file used to cache items
*/
public CachingRemoteConnector(RemoteConnector delegate, File cacheFile) {
super(delegate);
DB db = null;
Set<String> itemIds = null;
Map<String, String> items = null;
int retry = 2;
while (retry >= 1) {
try {
DBMaker<?> dbMaker = DBMaker.newFileDB(cacheFile);
dbMaker.closeOnJvmShutdown();
db = dbMaker.make();
itemIds = db.getTreeSet("itemIds");
items = db.getHashMap("items");
break;
} catch (Throwable e) {
--retry;
if (retry == 1 && cacheFile.exists()) {
//unable to open disk cache. remove it and try again.
try {
//close db first
if (db != null) {
db.close();
db = null;
}
} catch (Throwable t) {
//ignore
}
cacheFile.delete();
continue;
}
//disk cache is not available. use in-memory cache
db = null;
itemIds = new HashSet<>();
items = new HashMap<>();
break;
}
}
_db = db;
_itemIds = itemIds;
_items = items;
}