Berkeley DB实例

本文详细介绍了BerkeleyDB数据库的实例操作,包括环境的打开与关闭、数据的存储与检索、以及数据库的基本管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Berkeley DB实例
2011年09月01日
   package test;
  import com.sleepycat.je.*;
  import com.sleepycat.bind.EntryBinding;
  import com.sleepycat.bind.tuple.TupleBinding;
  import com.sleepycat.bind.serial.StoredClassCatalog;
  import com.sleepycat.bind.serial.SerialBinding;
  import java.io.File;
  public class test {
  public static void main(String[] args) {
  }
  /**
  * 打开和关闭环境,示例一
  *
  */
  public void eg1(){
  //----打开环境,如果不存在,则创建一个------------
  Environment myDbEnvironment=null;
  try {
  EnvironmentConfig envConfig = new EnvironmentConfig();
  envConfig.setAllowCreate(true); //true不存在就创建,false如果不存在则打开环境失败
  //envConfig.setReadOnly(true); //true 以只读方式打开,如果是多进程应用,每个进程都要设置为true
  //envConfig.setTransactional(true);//true支持事务,false不支持,默认false。可以更改配置文件来设置此参数。
  myDbEnvironment = new Environment(new File(".//"), envConfig);//环境所在路径
  java.util.List myDbNames = myDbEnvironment.getDatabaseNames(); //得到所有的数据库的名字
  for(int i=0; i value,二者都被是有DatabaseEntry封装的。
  //这个之前也提过很多次了,DatabaseEntry可以封装原始类型和复杂的对象类型,二者都要被转换为byte array存储,转换可以使用Bind API来完成
  //写数据
  myDatabase.put(null, theKey, theData);//如果不是可重复数据库,put将会覆盖原有的记录。
  //myDatabase.putNoOverwrite(null, theKey, theData);//不允许覆盖,不管是否允许数据重复。
  //读数据
  //--myDatabase.getSearchBoth(null, theKey, theData, LockMode.DEFAULT);//查找key和data都匹配的记录
  //--查询出来的key和data都是byte数组形式。
  if (myDatabase.get(null, theKey, theData, LockMode.DEFAULT) ==OperationStatus.SUCCESS)
  {
  byte[] retData = theData.getData();
  String foundData = new String(retData, "UTF-8");
  System.out.println("For key: '" + aKey + "' found data: '" +foundData + "'.");
  }
  //删除数据
  myDatabase.delete(null, theKey); //删除数据
  } catch (Exception e) {}
  //关闭数据库
  //如果打开了游标,关闭时JE会发出警告,让你关闭他们先。活动状态的游标在关闭库的过程中会产生意想不到的结果,尤其是其他线程在写库的过程中。确定所有的访问都结束后再关闭库
  try {
  if (myDatabase != null) {
  myDatabase.close();
  myDbEnvironment.renameDatabase(null, "sampleDatabase", "test");//重命名,必须先关闭数据库
  myDbEnvironment.removeDatabase(null, "sampleDatabase");//删除数据库,必须先关闭数据库
  //myDbEnvironment.truncateDatabase(null, myDatabase.getDatabaseName(),true);//删除并回收数据库空间 ,true返回删除的记录的数量,false不返回删除的记录数量值
  }
  if (myDbEnvironment != null) {
  myDbEnvironment.close();
  }
  } catch (DatabaseException dbe) {
  
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值