2.BDB-API应用

一.步骤拆解

1.数据库环境变量配置
2.数据库CRUD操作
3.数据库关闭

1.数据库环境变量配置

	/**
    * 初始化数据库参数
    */
   // 数据库所在的存储文件夹
   String dbEnvFilePath = "bdb";
   // 数据库名称
   String database = "weibo";
   // 环境变量的声明
   Environment myDbEnvironment = null;
   // 数据库操作的对象声明
   Database weiboDatabase = null;
   try {
      // 初始化数据存储根目录文件夹
      File f = new File(dbEnvFilePath);
      if (!f.exists()) {
         f.mkdirs();
      }
      // 数据库配置变量初始化
      DatabaseConfig dbConfig = new DatabaseConfig();// 打开数据库
      dbConfig.setAllowCreate(true);
      // 初始化环境配置变量,基于该变量去配置环境变量
      EnvironmentConfig envConfig = new EnvironmentConfig();
      // 当使用的数据库配置变量不存在的时候,就自动创建
      envConfig.setAllowCreate(true);
      // 正式初始化数据库的环境
      myDbEnvironment = new Environment(f, envConfig);
      // 打开一个数据库,如果不存在,则自动创建
      weiboDatabase = myDbEnvironment.openDatabase(null, database,
            dbConfig);
   } catch (Exception e) {
      e.printStackTrace();
   }

2.数据库CRUD操作

2.1.数据库创建

weiboDatabase = myDbEnvironment.openDatabase(null, database,dbConfig);

2.2.数据库增加、修改操作

// 存储数据
   // 数据的key
   String aKey = "key1";
   // 数据的value
   String aData = "data";
   try {
      // 将key和value都封装到DatabaseEntry中
      DatabaseEntry theKey = new DatabaseEntry(aKey.getBytes("UTF-8"));
      DatabaseEntry theData = new DatabaseEntry(aData.getBytes("UTF-8"));
      // 写入数据库
      weiboDatabase.put(null, theKey, theData);
      // 对该库进行count操作,查看有多少条数据
      System.out.println(weiboDatabase.count());
   } catch (Exception e) {
      e.printStackTrace();
   }

2.3.数据读取操作

// 读取数据
   //要读取数据的key
   aKey = "key1";
   try {
      //将读取数据的key封装到DatabaseEntry中
      DatabaseEntry theKey = new DatabaseEntry(aKey.getBytes("UTF-8"));
      //将读取出来的值以二进制形式放到DatabaseEntry中
      DatabaseEntry theData = new DatabaseEntry();
      //执行读取操作
      weiboDatabase.get(null, theKey, theData, LockMode.DEFAULT);
      //将二进制数据转化成字符串值
      String result =new String(theData.getData(), "utf-8");
      //打印之
      System.out.println(result);
   } catch (Exception e) {
      e.printStackTrace();
   }	

2.4.数据删除操作

	// 删除数据
   //要删除的数据的key
   aKey = "key1";
   try {
      //将要删除数据的key封装到DatabaseEntry中
      DatabaseEntry theKey = new DatabaseEntry(aKey.getBytes("UTF-8"));
      //执行删除操作
      weiboDatabase.delete(null, theKey);
      //查看数据库当前的记录数
      System.out.println(weiboDatabase.count());
   } catch (Exception e) {
      e.printStackTrace();
   }

2.5.数据库关闭

	// 关闭
   try {
      //先关闭数据库
      if (weiboDatabase != null) {
         weiboDatabase.close();
      }
      //再关闭BDB系统环境变量
      if (myDbEnvironment != null) {
                            myDbEnvironment.sync();
         myDbEnvironment.cleanLog(); // 在关闭环境前清理下日志
         myDbEnvironment.close();
      }
   } catch (Exception e) {
      e.printStackTrace();
   }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值