当前位置: 首页>>代码示例>>Java>>正文


Java DBMaker.newFileDB方法代码示例

本文整理汇总了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;
        }
    }
 
开发者ID:conveyal,项目名称:gtfs-lib,代码行数:18,代码来源:GTFSFeed.java

示例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);
    }
}
 
开发者ID:jhendess,项目名称:metadict,代码行数:22,代码来源:MapdbStorageEngineFactory.java

示例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");
}
 
开发者ID:enricopal,项目名称:STEM,代码行数:33,代码来源:MapDBBlockingDatabase.java

示例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);

}
 
开发者ID:dinocore1,项目名称:MicroDb,代码行数:13,代码来源:DBBuilder.java

示例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();
}
 
开发者ID:pmeisen,项目名称:dis-timeintervaldataanalyzer,代码行数:46,代码来源:MapDbAuthorizingRealm.java

示例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;
}
 
开发者ID:michel-kraemer,项目名称:citeproc-java,代码行数:52,代码来源:CachingRemoteConnector.java


注:本文中的org.mapdb.DBMaker.newFileDB方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。