자바 의 버클 리 DB(1)
4795 단어 자바database사용 방법입문BerkerleyDB
Crawler 가 캡 처 한 웹 페이지 가 많 을 수록 자바 테이프 의 Array List 나 HashMap 을 사용 하 는 것 도 저장 되 지 않 았 고 속도 적 으로 도 우리 의 수 요 를 만족 시 키 지 못 했 기 때문에 Berkeley DB 와 같은 메모리 기반 소형 데이터 베 이 스 를 사용 하 는 것 을 추천 합 니 다.이것 은 내장 형 데이터 베이스 로 응용 프로그램 에 포 함 된 데이터 베 이 스 를 말 합 니 다.
Oracle 홈 페이지 에 접속 하면 이 라 이브 러 리 에 다운로드 할 수 있 습 니 다.
메모:lib 에 가입 할 때 는 je 그 jar 만 가입 하면 됩 니 다.어차피 제 가 다른 것 도 추가 할 때 잘못 보고 할 수 있 습 니 다.
java.lang.NullPointerException at com.sleepycat.je.dbi.MemoryBudget.
이런 영문 도 모 르 고 기묘 한 것 을 나 로 하여 금 한참 동안 찾 아 오 게 하여 깊 은 밤 에...........................................나중에 창고 하나만 추가 하면 되 는데...
모두 가 인터넷 에 접속 하여 그의 중국어 수첩 을 찾 아 볼 수 있 는 것 을 추천 합 니 다.누군가가 번역 을 해서 곧 손 에 넣 을 수 있 습 니 다.
우선 환경 설정 이 필요 합 니 다.EnvironConfig.
이 환경 설정 은 우리 의 환경 환경 환경 을 생 성 할 수 있 습 니 다.
그리고 이 환경 을 이용 하여 데이터베이스 Database 를 만 듭 니 다.
물론 데이터베이스 설정 DatabaseConfig
알 아내 면 간단 합 니 다.다른 것 은 설정 문제 입 니 다.
앞으로 프로젝트 를 사용 하기 위해 서,나 는 간단하게 이 라 이브 러 리 를 hashMap 과 유사 한 사용 방법 으로 봉 했다.
아직 커서 를 보지 못 했 습 니 다.여러분 스스로 이 함 수 를 풍부하게 하면 됩 니 다.너무 늦 었 습 니 다.졸음
import java.io.File;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import com.sleepycat.je.Database;
import com.sleepycat.je.DatabaseConfig;
import com.sleepycat.je.DatabaseEntry;
import com.sleepycat.je.Environment;
import com.sleepycat.je.EnvironmentConfig;
import com.sleepycat.je.LockMode;
import com.sleepycat.je.OperationStatus;
public class Main {
/**
* @param args
*/
static Environment env = null;
public static void main(String[] args) {
BDBUtil<Integer, Student> bDB = new BDBUtil<Integer, Student>("testDB");
Student s1 = new Student(1,"ylf");
Student s2 = new Student(2,"dsb");
Student s3 = new Student(3,"dbc");
bDB.put(1, s1);
bDB.put(2, s2);
bDB.put(3, s3);
Student s = new Student();
s.fromString(bDB.get(3));
System.out.println("my name is "+s.getName()+" no is "+s.getNo());
System.out.println(bDB.size());
bDB.close();
}
}
/**
* BDB
* , 3
* HashMap
* :
* K V Serializable
* toString
* close()
* @author ylf
*
*/
class BDBUtil<K, V>{
private Environment env = null;
private EnvironmentConfig envCfig = null;
private Database db = null;
private DatabaseConfig dbCfig = null;
private File file = null;
public BDBUtil(String dbName) {
envCfig = new EnvironmentConfig();
envCfig.setAllowCreate(true);
file = new File("./test/");
env = new Environment(file, envCfig);
dbCfig = new DatabaseConfig();
dbCfig.setAllowCreate(true);
db = env.openDatabase(null, dbName, dbCfig);
}
public boolean put(K keyStr, V valueStr){
DatabaseEntry key;
try {
key = new DatabaseEntry(keyStr.toString().getBytes("gb2312"));
DatabaseEntry data = new DatabaseEntry(valueStr.toString().getBytes("gb2312"));
db.put(null, key, data);
return true;
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
return false;
}
}
public String get(K keyStr){
DatabaseEntry key;
String value = "";
try {
key = new DatabaseEntry(keyStr.toString().getBytes("gb2312"));
DatabaseEntry data = new DatabaseEntry();
if(db.get(null,key,data,LockMode.DEFAULT) == OperationStatus.SUCCESS)
value = new String(data.getData(),"gb2312");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return value;
}
public boolean del(K keyStr){
DatabaseEntry key;
try {
key = new DatabaseEntry(keyStr.toString().getBytes("gb2312"));
if(OperationStatus.SUCCESS == db.delete(null, key))
return true;
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return false;
}
public long size(){
return db.count();
}
public void close(){
db.close();
env.cleanLog();
env.close();
}
}
/**
*
* toString()
* @author ylf
*
*/
class Student implements Serializable{
/**
*
*/
private static final long serialVersionUID = 7333239714054069867L;
private String name;
private int no;
public Student() {
}
public Student(int no, String name){
this.no = no;
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getNo() {
return no;
}
public void setNo(int no) {
this.no = no;
}
@Override
public String toString() {
return "Student"+no+":"+name;
}
public void fromString(String str){
int i = str.indexOf(':');
String noStr = str.substring(7,i);
this.no = Integer.parseInt(noStr);
this.name = str.substring(i+1);
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.