注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

zorksylar

Nothing is impossible , if distributed.

 
 
 

日志

 
 

【Berkeley DB】BerkeleyDB的Read,Write,Delete操作  

2011-12-01 14:22:11|  分类: BerkeleyDB |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

import java.io.File;

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.EnvironmentMutableConfig;
import com.sleepycat.je.LockMode;
import com.sleepycat.je.OperationStatus;


public class TestBdb{
      
      private Environment mdEnv = null;
      private EnvironmentConfig mdEnvConf = null;
      private EnvironmentMutableConfig mdEnvMuConf = null;
      private Database md = null;
      private DatabaseConfig mdConf = null;
      static final String home = "/home/pin/workspace/TestBdb/db";/*database's file dir*/
      static final String mdName = "TestDb";/*database's name*/
      private File mdFile;/*database's file*/

      
      public static void main(String args[]){
            TestBdb tbdb = new TestBdb();
            tbdb.setDbEnv();
            tbdb.setDbConf();
            tbdb.openmd();
            
            String key,value;
            int i;
            for(i = 0;i < 3;i ++){
                  key = "key" + i;
                  value = "value" + i;
                  tbdb.writedata(key, value);
                  System.out.println("writedata" + "\t" + key + "\t" + value);
            }
            
            for(i = 0;i < 3;i ++){
                  key = "key" + i;
                  value = tbdb.readdata(key);
                  System.out.println("readdata" + "\t" + key + "\t" + value);
            }
            
            tbdb.closemd();
            
      }
      
      //set TestDatabase's Environment Configure

      private void setDbEnv(){
            try{
                  mdEnvConf = new EnvironmentConfig();
                  mdEnvConf.setAllowCreate(true);
                  mdEnvConf.setReadOnly(false);
                  mdEnvConf.setTransactional(true);
                  mdFile = new File(home);
                  mdEnv = new Environment(mdFile,mdEnvConf);
                  
            }catch(DatabaseException e){
                  e.printStackTrace();
            }
      }
      
      
      //set Environment's database's Configure

      private void setDbConf(){
            try{
                  mdConf = new DatabaseConfig();
                  mdConf.setAllowCreate(true);
                  mdConf.setReadOnly(false);
                  mdConf.setTemporary(true); /*use Temporary database*/
            }catch(DatabaseException e){
                  e.printStackTrace();
            }
      }
      
      
      //open mydatabase

      private void openmd(){
            try{
                  md = mdEnv.openDatabase(null, mdName, mdConf);
            }catch(DatabaseException e){
                  e.printStackTrace();
            }
      }
      
      //colse mydatabase

      private void closemd(){
            try{
                  if(md != null){
                        md.close();
                  }
            }catch(DatabaseException e){
                  e.printStackTrace();
            }
      }
      
      
      //write data to database

      private void writedata(String key,String value){
            //Environment and Database can not be read-only

            try {
                  DatabaseEntry wkey = new DatabaseEntry(key.getBytes("UTF-8"));
                  DatabaseEntry wvalue = new DatabaseEntry(value.getBytes("UTF-8"));
                  md.put(null, wkey, wvalue);
            } catch (Exception e) {
                  e.printStackTrace();
            }
      }
      
      
      //read data from database

      private String readdata(String key){
            byte [] retdata = null;
            String ret = null;
            DatabaseEntry rvalue = new DatabaseEntry();
            try{
                  DatabaseEntry rkey = new DatabaseEntry(key.getBytes("UTF-8"));
                  
                  if(md.get(null, rkey, rvalue,LockMode.DEFAULT ) == OperationStatus.SUCCESS){
                        retdata = rvalue.getData();
                        ret = new String(retdata,"UTF-8");
                  }else{
                        System.out.println("No record found for key " + key + " .");
                  }
                  return ret;
            }catch(Exception e){
                  e.printStackTrace();
                  return ret;
            }
      }
      
      //delete data from database

      private void deletedata(String key){
            //Environment and  database can not be "read-only"

            try{
                  DatabaseEntry dkey = new DatabaseEntry(key.getBytes("UTF-8"));
                  md.delete(null, dkey);
            }catch(Exception e){
                  e.printStackTrace();
            }
      }
      
}


  评论这张
 
阅读(516)| 评论(4)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018