`
vtrtbb
  • 浏览: 360432 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Berkeley-DB类操作

    博客分类:
  • java
 
阅读更多
import com.sleepycat.je.Database;
import com.sleepycat.je.DatabaseConfig;
import com.sleepycat.je.DatabaseEntry;
import com.sleepycat.je.DatabaseException;
import com.sleepycat.je.Environment;
import com.sleepycat.je.EnvironmentConfig;
import com.sleepycat.je.LockMode;
import com.sleepycat.je.OperationStatus;

public class BerkeleyDB {
	private Environment env;
	private Database db;

	public BerkeleyDB() {

	}

	public void setUp(String path, long cacheSize) {
		EnvironmentConfig envConfig = new EnvironmentConfig();
		envConfig.setAllowCreate(true);
		envConfig.setCacheSize(cacheSize);
		try {
			env = new Environment(new File(path), envConfig);
		} catch (DatabaseException e) {
			e.printStackTrace();
		}
	}

	public void open(String dbName) {
		DatabaseConfig dbConfig = new DatabaseConfig();
		dbConfig.setAllowCreate(true);
		try {
			db = env.openDatabase(null, dbName, dbConfig);
		} catch (DatabaseException e) {
			e.printStackTrace();
		}
	}

	public void close() {
		try {
			if (db != null) {
				db.close();
			}
			if (env != null) {
				env.close();
			}
		} catch (DatabaseException e) {
			e.printStackTrace();
		}
	}

	public synchronized String get(String key)  {
		DatabaseEntry queryKey = new DatabaseEntry();
		DatabaseEntry value = new DatabaseEntry();
		try{
			queryKey.setData(key.getBytes("UTF-8"));	
			OperationStatus status = db.get(null, queryKey, value, LockMode.DEFAULT);
			if (status == OperationStatus.SUCCESS) {
				return new String(value.getData());
			}
		}catch(Exception ex) {
			//ex.printStackTrace();
			return null;
		}
		return null;
	}

	public synchronized boolean put(String key, String value)  {
		try{
			byte[] theKey = key.getBytes("UTF-8");
			byte[] theValue = value.getBytes("UTF-8");
			OperationStatus status = db.put(null, new DatabaseEntry(theKey),new DatabaseEntry(theValue));
			if (status == OperationStatus.SUCCESS) {
				return true;
			}
		}catch(Exception ex) {
			//ex.printStackTrace();
			return false;
		}
		return false;
	}

	public synchronized boolean delete(String key) throws Exception {
		byte[] theKey = key.getBytes("UTF-8");
		OperationStatus status = db.delete(null, new DatabaseEntry(theKey));
		if (status == OperationStatus.SUCCESS) {
			return true;
		}
		return false;
	}

	public boolean update(String key, String value) throws Exception {
		byte[] updateKey = key.getBytes("UTF-8");
		byte[] updateValue = value.getBytes("UTF-8");

		OperationStatus status = db.put(null, new DatabaseEntry(updateKey),new DatabaseEntry(updateValue));
		if (status == OperationStatus.SUCCESS) {
			return true;
		}
		return false;
	}
	
	
	public static void main(String[] args) {
		BerkeleyDB bdb = new BerkeleyDB();
		bdb.setUp("d:/news/data"/**HttpContext.getConfig().getString(AppConfig.BDB_PATH)**/, 1000*1000);
		bdb.open("searchDB");
		try {
			boolean isExists = bdb.get("你好啊")!=null;
			System.out.println("--isExists-->"+isExists);
			if (!isExists) {
				System.out.println("--->不存在了啊!sss");
			}
			if (bdb.get("你好啊")!=null) {
				System.out.println("--->已经存在了啊!");
			}
						System.out.println("-----------"+bdb.get("你好啊")+"------"+bdb.get("你好啊1"));
		} catch (Exception e) {			
			e.printStackTrace();
		}
		bdb.close();
	}
}

 b-db在项目中也有应用,写了个基本的类:

 

 

分享到:
评论

相关推荐

    java berkeley-db demo

    Berkeley DB支持让数千的并发线程同时操作数据库,支持最大256TB的数据,广泛用于各种操作系统,其中包括大多数类Unix操作系统、Windows操作系统以及实时操作系统。 #oracle 介绍关于berkeleydb ...

    Berkeley DB C++编程入门教

    在“BerkeleyDB概念”部分,文档会介绍Berkeley DB的基本概念,如BTree和Hash数据库的访问方式选择,以及Queue和Recno之间的选择。 接下来,教程会讨论数据库的限制与可移植性、环境设置、异常处理和错误返回。然后...

    berkeley-db- performace test specification white paper .pdf

    《Berkeley DB:性能指标与基准测试》是一份由Oracle发布的白皮书,该文档主要关注于Oracle Berkeley DB在不同操作系统、硬件平台及配置下的性能表现。本文旨在为用户提供关于Berkeley DB在常见配置下的性能预期,并...

    berkeley-db-v-relational-066565

    6. **跨平台兼容性**:Berkeley DB可以在多种操作系统上运行,包括Unix、Linux、Windows和嵌入式系统,这增加了其应用范围和灵活性。 7. **开源**:Berkeley DB的部分版本是开源的,这使得开发者可以自由地研究、...

    building-ha-scalable-applications-with-berkeley-db-whitepaper

    构建高可用性和可扩展性的应用程序:Berkeley DB 高可用性解决方案 在现代信息技术领域,构建高度可用且可扩展的应用程序已成为企业成功的关键因素之一。Berkeley DB 高可用性(BDB-HA)作为一款嵌入式数据管理系统...

    Berkeley DB4.8以上各版本

    6. **兼容性提升**:正如描述中所提及,Berkeley DB 4.8及以上版本与RHEL 6.5兼容,这意味着它们可以在该操作系统上稳定运行,为基于RHEL的应用程序提供数据库支持。 7. **安全性强化**:随着安全性的日益重要,...

    Berkeley DB参考手册PDF版本

    - **20.9 如何操作BerkeleyDB的Records** - **记录操作**:说明如何在Berkeley DB中插入、更新和删除记录。 #### 21. 嵌入式据库系统BerkeleyDB - **21.1 前言** - **背景介绍**:概述Berkeley DB作为一款嵌入式...

    BerkeleyDB-Core-Cxx-GSG.rar_Berkeley DB_berkeley Db cxx

    对于初次接触Berkeley DB的开发者,"BerkeleyDB-Core-Cxx-GSG.pdf"这份文档是一个很好的起点。它详尽地介绍了如何在C++环境中配置、初始化Berkeley DB环境,以及如何使用C++接口进行数据操作。同时,它也涵盖了错误...

    BerkeleyDB-0.26

    BerkeleyDB 就是一个典型的嵌入式数据库,它的轻量级特性使得它可以轻松地嵌入到各种应用程序中,包括操作系统、设备固件以及各种服务器应用。 **BerkeleyDB 的主要特点:** 1. **无模式设计** - 数据库中的每个...

    Java-Edition-BerkeleyDB-3.1.0.zip_BerkeleyDB

    **Java版BerkeleyDB 3.1.0详解** BerkeleyDB是一款由Oracle公司开发的开源、嵌入式数据库系统,特别适用于Java开发者。在Java-Edition-BerkeleyDB-3.1.0版本中,它提供了高效、可靠的数据存储解决方案,尤其适合于...

    Berkeley DB参考资料

    BerkeleyDB 多库联合操作 (Secondary Databases) - **3.1 二级数据库介绍** - **概念解释**:二级数据库是对主数据库的一个索引,用于提高查询效率。 - **应用场景**:快速查找、数据统计等。 - **3.2 创建二级...

    BerkeleyDB_java_jar包

    标题中的"BerkeleyDB_java_jar包"指的是适用于Java开发的BerkeleyDB库的jar文件,这个jar包包含了运行和开发BerkeleyDB Java应用所需的类和方法。 描述中提到的"7.5.11版本"是BerkeleyDB的一个特定发行版,每个版本...

    BerkeleyDB Manual C/C++

    《BerkeleyDB Manual C/C++》是一份详尽的官方文档,主要针对使用C和C++语言进行数据库操作的开发者。BerkeleyDB是一款轻量级、高性能的关系型数据库管理系统,常用于嵌入式系统和分布式应用程序。这篇手册将深入...

    openldap-2.2.29-db-4.3.29-openssl-0.9.8a-win32_Setup.7z

    - "db-4.3.29"指的是Berkeley DB数据库引擎的版本,OpenLDAP通常使用Berkeley DB作为其默认后端存储系统,用于存储目录数据。 - "openssl-0.9.8a"是指OpenSSL库的版本,OpenSSL是一个用于安全套接层(SSL/TLS)...

    BerkeleyDB-Core-JAVA-GSG.pdf

    根据提供的文档信息,“BerkeleyDB-Core-JAVA-GSG.pdf”主要介绍了如何在Java环境中使用Berkeley DB。该文档强调了Berkeley DB作为一种文件类型数据库的优势,包括快速的存取速度和方便的操作特性。 #### 二、...

    BerkeleyDB-0.27

    在QQ等即时通讯软件中,BerkeleyDB被用于存储本地聊天记录,展示了其在处理大量并发读写操作时的优秀性能和灵活性。 **嵌入式数据库** 是一种与应用程序紧密集成的数据存储解决方案,无需独立的服务器进程或网络...

    BerkeleyDB的参考书集

    4. **BerkeleyDB-Java-Collections.pdf**:对于Java开发者,此文档展示了如何使用BerkeleyDB与Java集合框架集成,提供了一种将数据库操作与Java编程无缝结合的方式。 5. **DBMessageTextReference.pdf**:这份文档...

    BerkeleyDB-Core-Cxx-GSG.rar

    在“BerkeleyDB-Core-Cxx-GSG.rar”这个压缩包中,包含的文件是“BerkeleyDB-Core-Cxx-GSG.pdf”,这很可能是Berkeley DB的C++接口的官方指南或开发者指南(Guide for Getting Started)。这份文档将深入介绍如何在...

    Berkeley DB数据库最新版

    Berkeley DB采用了键值对(Key-Value Store)的存储模型,用户通过键来查找和操作对应的值。这种模型简单直观,适合于大量的随机读写操作,且无需复杂的SQL查询语言。 **2. 文件格式** Berkeley DB的数据以文件形式...

Global site tag (gtag.js) - Google Analytics