package bao.BerkeleyDB;
import java.io.File;
import java.io.FileNotFoundException;
import com.sleepycat.bind.serial.StoredClassCatalog;
import com.sleepycat.je.Database;
import com.sleepycat.je.DatabaseConfig;
import com.sleepycat.je.DatabaseException;
import com.sleepycat.je.Environment;
import com.sleepycat.je.EnvironmentConfig;
/**
* �����࣬�ر����ݿ�
*
* */
public abstract class AbstractDBD {
private Environment env;
private static final String CLASS_CATALOG = "java_class_catalog";
protected StoredClassCatalog javaCatalog;
protected Database catalogdatabase;
protected Database database;
public AbstractDBD(String homeDirectory) throws DatabaseException,FileNotFoundException {
//�ж��ļ����Ƿ���ڣ���������
File file =new File(homeDirectory);
//����ļ��в�������
if (!file .exists() && !file .isDirectory()){
file .mkdir();
}
// ��env
System.out.println("Opening environment in: " + homeDirectory);
EnvironmentConfig envConfig = new EnvironmentConfig();
envConfig.setTransactional(true);
envConfig.setAllowCreate(true);
env = new Environment(new File(homeDirectory), envConfig);
// ����DatabaseConfig
DatabaseConfig dbConfig = new DatabaseConfig();
dbConfig.setTransactional(true);
dbConfig.setAllowCreate(true);
// ��
catalogdatabase = env.openDatabase(null, CLASS_CATALOG, dbConfig);
javaCatalog = new StoredClassCatalog(catalogdatabase);
// ����DatabaseConfig
DatabaseConfig dbConfig0 = new DatabaseConfig();
dbConfig0.setTransactional(true);
dbConfig0.setAllowCreate(true);
// ��
database = env.openDatabase(null, "URL", dbConfig);
}
// �ر����ݿ⣬�رջ���
public void close() throws DatabaseException {
database.close();
javaCatalog.close();
env.close();
}
// put����
protected abstract void put(Object key, Object value);
// get����
protected abstract Object get(Object key);
// delete����
protected abstract Object delete(Object key);
}