Java学习从这里JavaVideo开始

JavaVideo java学习从这里开始

当前位置: 主页 > 技术精选 >

java使用bdb手记(Berkeley DB Java api记录)

时间:2011-06-17 15:12来源: 作者:admin 点击:
在线Berkeley DB Java Edition API: Berkeley DB是一个开放源代码的内嵌式数据库管理系统,能够为应用程序提供高性能的数据管理服务。应用它程序员只需要调用一些简单的API就可以完成对数据

在线Berkeley DB Java Edition API:

Berkeley DB是一个开放源代码的内嵌式数据库管理系统,能够为应用程序提供高性能的数据管理服务。应用它程序员只需要调用一些简单的API就可以完成对数据的访问和管理。与常用的数据库管理系统(如MySQL和Oracle等)有所不同,在Berkeley DB中并没有数据库服务器的概念。应用程序不需要事先同数据库服务建立起网络连接,而是通过内嵌在程序中的Berkeley DB函数库来完成对数据的保存、查询、修改和删除等操作。

用java来操作BDB,需要jar包je-3.3.62.jar

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 MyBerkeleyDB {

private Environment env;
private Database db;

public MyBerkeleyDB() {

}

public void setUp(String path, long cacheSize) {
EnvironmentConfig envConfig = new EnvironmentConfig();
envConfig.setAllowCreate(true);
envConfig.setCacheSize(cacheSize);
try {
env = new Environment(new File(path),envConfig);
} catch (DatabaseException e) {
e.printStackTrace();
}
}

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.close();
}
} catch (DatabaseException e) {
e.printStackTrace();
}
}

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());
}
return null;
}

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;
}

public static void main(String[] args) {
MyBerkeleyDB mbdb = new MyBerkeleyDB();
mbdb.setUp(“C:\\bdb”, 1000000);
mbdb.open(“myDB”);
System.out.println(“开始向Berkeley DB中存入数据…”);
for(int i=0; i<20; i++) {
try {
String key = “myKey”+i;
String value = “myValue”+i;
System.out.println(“[" + key + ":" + value + "]“);
mbdb.put(key , value);
} catch (Exception e) {
e.printStackTrace();
}
}
mbdb.close();

}

取出和删除 不言自明


原创文章如转载,请注明:转载自五四陈科学院[]
本文链接:

国库流行的ip库记录数大约在6万条左右,数据格式大约都是如下: start,end,country… 要查询的时候都是放到mysql里去,然后select * from ip where start>=xx and end end <=xx来得到ip信息,我(54chen)在搞一个实时监控时,因为并发量非常大,全部查询IP库,需要好几万每秒的查询,特改了java的TreeMap的get方法,将所有数据放到内存里来操作,put的时候还是保持TreeMap的红黑树实现,以start作为key,而在get的时候有一个 compare的过程,在发现compare是大于0的时候进行如下修改: else if (cmp > 0) { int start = ((Data) p.value).getStart(); int end = ((Data) p.value).getEnd(); int intKey = Integer.parseInt(k.toString()); if (intKey >= start && intKey <= …

Continue reading

Yearly Archives: 2010

ubuntu10.04 下通过usb在G7(desire)上真机调试android程序的设置

本文为android开发入门系列,以下是各节传送门: android 开发入门 android开发入门2:概念建立 一、工具介绍 android-sdk-linux_x86/tools下有一堆工具,今天要用的是:Android Debug Bridge,在android开发过程中,这个工具是使用得最多的。(缩写adb,有点像gcc的gdb似的) adb start-server – 实际上它会启动一个 adb fork-server server adb kill-server – kill掉 adb devices – 列出所有的设备 二、设置usb权限 因为ubuntu这样的系统都是默认以非root身份在运行的,要使用usb调试,需要sudo支持。 $ lsusb Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub …

(责任编辑:JavaVideo)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容