设为首页 加入收藏

TOP

berkeleydb储存URL队列的简单实现增、删、查(二)
2014-11-23 23:25:16 来源: 作者: 【 】 浏览:21
Tags:berkeleydb 储存 URL 队列 简单 实现
BName, String rankPage) { boolean mark = false; // 配置环境 https://community.oracle.com/thread/996592 start=0&tstart=0 问题地址 EnvironmentConfig envConfig = new EnvironmentConfig(); // 设置配置事务 envConfig.setTransactional(true); // 如果不存在就创建环境 envConfig.setAllowCreate(true); File file = new File(fileName); file.mkdirs(); try { Environment exampleEnv = new Environment(file, envConfig); Transaction txn = exampleEnv.beginTransaction(null, null); DatabaseConfig dbConfig = new DatabaseConfig(); dbConfig.setTransactional(true); dbConfig.setAllowCreate(true); dbConfig.setSortedDuplicates(false); Database exampleDb = exampleEnv.openDatabase(txn, databaseDBName, dbConfig); txn.commit(); DatabaseEntry theKey = new DatabaseEntry(url.getBytes("utf-8")); DatabaseEntry theData = new DatabaseEntry( rankPage.getBytes("utf-8")); exampleDb.put(null, theKey, theData); exampleDb.close(); exampleEnv.close(); } catch (Exception e) { e.printStackTrace(); mark = false; } return mark; } // 读取没有访问过的URL public String readerURL(String fileName, String databaseDBName) { // boolean mark = false; // 配置环境 EnvironmentConfig envConfig = new EnvironmentConfig(); // 设置配置事务 envConfig.setTransactional(true); // 如果不存在就创建环境 envConfig.setAllowCreate(true); File file = new File(fileName); String theKey = null; // file.mkdirs(); try { Environment exampleEnv = new Environment(file, envConfig); // Transaction txn = exampleEnv.beginTransaction(null,null); DatabaseConfig dbConfig = new DatabaseConfig(); dbConfig.setTransactional(true); dbConfig.setAllowCreate(true); dbConfig.setSortedDuplicates(false); Database myDB = exampleEnv.openDatabase(null, databaseDBName, dbConfig); // txn.commit(); // txn = exampleEnv.beginTransaction(null,null); Cursor cursor = myDB.openCursor(null, null); DatabaseEntry foundKey = new DatabaseEntry(); DatabaseEntry foundValue = new DatabaseEntry(); // cursor.getPrev()与cursor.getNext()的区别:一个是从前往后读取,一个是从后往前读取 // 这里讲访问遍历数据库全部数据while循环噶为if判断,则就只读取第一条数据 if (cursor.getNext(foundKey, foundValue, LockMode.DEFAULT) == OperationStatus.SUCCESS) { theKey = new String(foundKey.getData(), "UTF-8"); } cursor.close(); myDB.close(); exampleEnv.close(); } catch (Exception e) { e.printStackTrace(); } return theKey; } // 读取已经爬取过的URL public String readerUsedURL(String fileName, String databaseDBName, String url) { // 配置环境 EnvironmentConfig envConfig = new EnvironmentConfig(); // 设置配置事务 envConfig.setTransactional(true); // 如果不存在就创建环境 envConfig.setAllowCreate(true); File file = new File(fileName); String theKey = null; // file.mkdirs(); try { Environment exampleEnv = new Environment(file, envConfig); Transaction txn = exampleEnv.beginTransaction(null, null); DatabaseConfig dbConfig = new DatabaseConfig(); dbConfig.setTransactional(true); dbConfig.setAllowCreate(true); dbConfig.setSortedDuplicates(false); Database myDB = exampleEnv.o
首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇查找本库包含某字段的所有表 下一篇类似groupby的分组计数功能

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: