`
lzj0470
  • 浏览: 1272771 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

BerkeleyDB

阅读更多
package org.qichao.database;

import java.io.File;
import java.io.UnsupportedEncodingException;

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 static final String DB_ENVIRONMENT_ROOT = "C:/dbRoot";
	private Environment myDBEnvironment = null;
	private static Database myDB = null;
	/*
	 *打开database环境
	 *@return
	 */
	public void createDBEnvironment()
	{
	 	if(myDBEnvironment != null)
	 	{
	 		return;
	 	}
	 	try
	 	{
	 		EnvironmentConfig config = new EnvironmentConfig();
	 		config.setAllowCreate(true);//如果不存在则创建一个
	 		config.setReadOnly(false);//以只读方式打开,默认为false
	 		config.setTransactional(true);//事务支持,如果为true,则表示当前环境支持事务处理,默认为false,不支持事务处理
	 		myDBEnvironment = new Environment(new File(DB_ENVIRONMENT_ROOT),config);
	 	}catch(DatabaseException e)
	 	{
	 		e.printStackTrace();
	 	}
	}
	/*
	 *关闭database环境
	 */
	public void closeDBEnvironment()
	{
		try
	    {
			if(myDBEnvironment != null)
			{
				myDBEnvironment.cleanLog();//在关闭环境前清理下日志
	   		    myDBEnvironment.close();
	   		}
	   	}catch(DatabaseException e)
	   	{
	   		e.printStackTrace();
	   	}
	}
	/*
	 *创建一个数据库
	 */
	public void createDB()
	{
		//打开一个数据库,数据库名为sampleDatabase,数据库的配置为config
	    if(myDB != null)
	    {
	    	return;
	    }
	    DatabaseConfig dbConfig = new DatabaseConfig();
	    dbConfig.setAllowCreate(true);
	    try
	    {
	    	myDB = myDBEnvironment.openDatabase(null,"sampleDatabase",dbConfig);
	    }catch(DatabaseException e)
	    {
	    	e.printStackTrace();
	    }
	}
	/*
	 *关闭数据库
	 */
	public void closeDB()
	{
		try
	    {
			if(myDB != null)
		    {
		     		myDB.close();
		    }
		}catch(DatabaseException e)
		{
		    	e.printStackTrace();
		}
	}
	//查询某个字段
	public static boolean selectKeyWord(String keyword){
		try{
			DatabaseEntry theKey = new DatabaseEntry(keyword.getBytes("UTF-8"));
			DatabaseEntry theData = new DatabaseEntry();
	    	if(myDB == null)
	    	{
	    		return true;
	    	}
	    	if(myDB.get(null, theKey, theData, LockMode.DEFAULT)==OperationStatus.SUCCESS){
	    		byte[] retData = theData.getData();
	    		String foundData = new String(retData,"UTF-8");
	    		System.out.println("found data:"+foundData+".");
	    		return true;
	    	}else{
	    		return false;
	    	}
		}catch(Exception e){
			e.printStackTrace();
			return true;
		}
	}
	public static void main(String args[])
	{
		BerkeleyDB bService = new BerkeleyDB();
     	bService.createDBEnvironment();
     	bService.createDB();
     	//记录
     	String aKey[] = {"001","002","003","004","005","006","007","008","009","010","011","011","012","013","014","015","016","017","018","019"};
     	String aData[] = {"我是正文内容","我是正文内容","我是正文内容","我是正文内容","我是正文内容","我是正文内容","我是正文内容","我是正文内容","我是正文内容","我是正文内容"
     			,"我是正文内容","我是正文内容","我是正文内容","我是正文内容","我是正文内容","我是正文内容","我是正文内容","我是正文内容","我是正文内容","我是正文内容"};
     	//最好指定编码方式,因为不指定编码会用系统的默认编码来转换,
     	//因为系统的默认编码可能会被人更改
     	boolean bool = selectKeyWord("001");
     	System.out.println(bool);
//     	try
//     	{   	
//     		
//     		for(int i=0;i<aKey.length;i++){
//	     		DatabaseEntry thekey = new DatabaseEntry(aKey[i].getBytes("UTF-8"));
//	     		DatabaseEntry theData = new DatabaseEntry(aData[i].getBytes("UTF-8"));
//	     		myDB.put(null, thekey, theData);
//     		}
//     	}catch(DatabaseException e)
//     	{
//     		e.printStackTrace();
//     	}catch(UnsupportedEncodingException e)
//     	{
//     		e.printStackTrace();
//     	}
     	bService.closeDB();
     	bService.closeDBEnvironment();

	}
}
 
分享到:
评论

相关推荐

    Berkeley DB4.8以上各版本

    Berkeley DB是一款由Oracle公司开发的嵌入式数据库系统,被广泛应用于许多软件项目中,尤其是在需要快速、轻量级数据存储解决方案的场景下。它提供了键值对存储模式,适用于构建高性能的数据缓存和数据库应用程序。...

    Berkeley DB数据库最新版

    **Berkeley DB数据库详解** Berkeley DB(简称BDB)是一种高性能、轻量级的嵌入式数据库系统,由Oracle公司开发并维护。它最初在伯克利大学诞生,因此得名“Berkeley DB”。这款数据库系统广泛应用于需要快速、可靠...

    Berkeley DB参考资料

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

    Berkeley DB参考手册PDF版本

    #### 1.1 Introduction to BerkeleyDB Cursor - **定义与作用**:游标是Berkeley DB提供的一种高效访问数据库记录的方式,通过游标可以实现对数据库中记录的查找、修改和删除等操作。 - **应用场景**:适用于需要...

    Berkeley DB数据库 6.2.32 64位

    Berkeley DB 6.2.32_64.msi Windows 64-bit binary installer Berkeley DB是一个嵌入式数据库,为应用程序提供可伸缩的、高性能的、有事务保护功能的数据管理服务。 主要特点: 嵌入式:直接链接到应用程序中,与...

    Berkeley DB C++编程入门教

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

    BerkeleyDB测试程序

    **BerkeleyDB测试程序** BerkeleyDB是一款轻量级、高性能、嵌入式的数据库系统,由Oracle公司开发。它提供了一种键值对存储模型,适用于需要快速存取大量数据的应用场景,尤其在分布式系统、嵌入式系统以及对性能有...

    BerkeleyDB的参考书集

    《BerkeleyDB的参考书集》是一份包含全面的BerkeleyDB相关书籍和文档的资源集合,涵盖了从基础到高级的各个层次,旨在为开发者提供深入理解和应用BerkeleyDB的全面指南。BerkeleyDB,简称BDB,是一个开源的、高性能...

    BerkeleyDB Manual C/C++

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

    sqlite PK Berkeley DB

    ### sqlite与Berkeley DB的深度比较 在信息技术领域,数据库技术是支撑现代软件应用的关键基石之一,其中,sqlite和Berkeley DB作为两款优秀的开源嵌入式数据库管理系统,因其轻量级、高性能及易于集成的特性,在...

    Berkeley DB 读取样例

    Berkeley DB 是一款高效、轻量级的嵌入式数据库系统,特别适合于需要本地存储且对性能有高要求的应用程序。它支持多种编程语言,包括Java,这使得开发人员能够在Java应用程序中直接使用Berkeley DB进行数据管理。在...

    Berkeley DB Java 版 4.0.92

    Oracle Berkeley DB Java 版是一个开源的、可嵌入的事务存储引擎,是完全用 Java 编写的。与 Oracle Berkeley DB 类似,Oracle Berkeley DB Java 版在应用程序的地址空间中执行,没有客户端/服务器通信的开销,从而...

    BerkeleyDB-0.26

    **BerkeleyDB** 是一款由 Oracle 公司开发的开源、高性能、无模式的键值对存储数据库系统。它在嵌入式环境和轻量级应用程序中被广泛使用,尤其适用于那些需要快速数据访问和简单数据管理的应用。BerkeleyDB 的设计...

    Berkeley DB

    **Berkeley DB** 是一个强大的、轻量级的嵌入式数据库系统,由Oracle公司开发。这个数据库系统设计用于在本地应用程序中存储和检索大量数据,尤其适合那些对性能、可扩展性和可靠性有高要求的应用。它不依赖于外部...

    SQLite和Berkeley DB对比资料收集

    SQLite和Berkeley DB对比资料收集 通过对SQLite和Berkeley DB的对比分析,我们可以了解到这两种嵌入式数据库的特点和优势。SQLite是一种强有力的嵌入式关系数据库管理体制,具有体积小、功能齐备、可移植性、健壮性...

    SQL 开发人员 Oracle Berkeley DB 指南

    《SQL开发人员Oracle Berkeley DB指南》 Oracle Berkeley DB是一个开源的嵌入式数据库引擎,它提供了高效、可靠的本地持久性存储,无需独立的数据库管理系统。这个数据库引擎特别适合那些需要固定查询模式并且对...

    BerkeleyDB_java_jar包

    BerkeleyDB是一个开源的、基于键值对的嵌入式数据库系统,由Oracle公司提供。它为Java开发者提供了丰富的API,使得在Java应用程序中轻松集成数据存储成为可能。标题中的"BerkeleyDB_java_jar包"指的是适用于Java开发...

Global site tag (gtag.js) - Google Analytics