三、一个简单的BDB JE例子

package test;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.LockMode;import com.sleepycat.je.OperationStatus;public class Test_BDBJE {/** * 整个数据库的环境 */private Environment env;/** * 数据库 */private Database db;public Test_BDBJE(){}/** * 构建数据库的开发环境 * @param path 环境目录 * @param cachedSize 缓存大小 */public void setup(String path, long cachedSize){//设置环境的配置EnvironmentConfig config = new EnvironmentConfig();config.setAllowCreate(true);config.setCacheSize(cachedSize);try{env = new Environment(new File(path), config);}catch(DatabaseException e){e.printStackTrace();}}/** * 构建数据库 * @param dbName 数据库名称 */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.cleanLog();env.close();}}catch(DatabaseException e){e.printStackTrace();}}/** * 由键值获得数据 * @param key * @return * @throws Exception */public String get(String key)throws Exception {DatabaseEntry queryKey = new DatabaseEntry();DatabaseEntry value = new DatabaseEntry();queryKey.setData(key.getBytes("UTF-8"));OperationStatus status = db.get(null, queryKey, value, LockMode.DEFAULT);if(status == OperationStatus.SUCCESS){return new String(value.getData(),"UTF-8");}return null;}/** * 存String数据 * @param key * @param value * @return * @throws Exception */public boolean put(String key, String value)throws Exception{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;}return false;}/** * 通过键值删除数据 * @param key * @return * @throws Exception */public boolean del(String key) throws Exception{DatabaseEntry queryKey = new DatabaseEntry(key.getBytes("UTF-8"));OperationStatus status = db.delete(null, queryKey);if(status == OperationStatus.SUCCESS){return true;}return false;}public static void main(String [] args){Test_BDBJE bdb = new Test_BDBJE();bdb.setup("e:\\bdb", 1000000);bdb.open("testbdb");try{System.out.println(bdb.getEnv().getConfig());}catch(DatabaseException e){e.printStackTrace();}System.out.println("start send data to bdb......~~~");for(int i = 0; i < 20 ; i ++){String key = "key" + i;String value = "value" + i;try {bdb.put(key, value);} catch (Exception e) {e.printStackTrace();}}try {System.out.println(bdb.get("key2"));} catch (Exception e) {e.printStackTrace();}try {if(bdb.del("key2")){System.out.println("true");}else{System.out.println("false");}} catch (Exception e) {e.printStackTrace();}bdb.close();System.out.println("close");}public Environment getEnv() {return env;}public void setEnv(Environment env) {this.env = env;}public Database getDb() {return db;}public void setDb(Database db) {this.db = db;}}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值