Berkeley DB XML入门
一、Berkeley DB XML安装及使用
在http://www.oracle.com/technology/global/cn/products/berkeley-db/xml/index.html下载BerkeleyDB XML的安装文件(dbxml-2.4.16.rar)进行安装。
完装完成后,重启计算机。
使用方法:
1、 通过cmd窗口,输入dbxml即可进入到BerkeleyDB XML的客户端窗口。可执行XQuery语句。
2、 通过JavaAPI来访问BerkeleyDB XML数据库,需要安装目录(Berkeley DB XML 2.4.16/jar)下的三个jar包:db.jar、dbxml.jar、dbxmlexamples.jar
二、java中的应用
代码在附件中:
包括四个类:
- DbXmlContainerConfig.java --初始化环境、容器等信息
- JAXBUtils.java --将文档转换成java类
- MyDbXmlTest.java --包括添、删、改、查文档和添索引功能
- PhoneBook.java --文档对应的java类
DbXmlContainerConfig.java --初始化环境、容器等信息
JAXBUtils.java --将文档转换成java类
MyDbXmlTest.java --包括添、删、改、查文档和添索引功能
PhoneBook.java --文档对应的java类
DbXmlContainerConfig.java --初始化环境、容器等信息:
- package com.test.berkeley.service.mytest;
- import java.io.File;
- import java.io.FileNotFoundException;
- import java.util.HashMap;
- import java.util.Map;
- import java.util.logging.Level;
- import java.util.logging.Logger;
- import com.sleepycat.db.DatabaseException;
- import com.sleepycat.db.Environment;
- import com.sleepycat.db.EnvironmentConfig;
- import com.sleepycat.dbxml.XmlContainer;
- import com.sleepycat.dbxml.XmlContainerConfig;
- import com.sleepycat.dbxml.XmlException;
- import com.sleepycat.dbxml.XmlManager;
- import com.sleepycat.dbxml.XmlManagerConfig;
- public class DbXmlContainerConfig {
- private Logger log = Logger.getAnonymousLogger();
- private String fileHomePath = "E:/test/dbxml/data";
- private static DbXmlContainerConfig dbxmlObj = null;
- private Environment env = null;
- private XmlManager xManager = null;
- private XmlContainer xCont = null;
- private Map<String, XmlContainer> xmlContainerMap;
- /**
- * 初始化
- */
- private DbXmlContainerConfig(){
- setEnvironment();
- setXmlManager();
- xmlContainerMap = new HashMap<String, XmlContainer>();
- }
- /**
- * 获得实例
- * @return
- */
- public static DbXmlContainerConfig getInstance(){
- if(dbxmlObj == null){
- dbxmlObj = new DbXmlContainerConfig();
- }
- return dbxmlObj;
- }
- /**
- * 创建Environment对象
- */
- public void setEnvironment(){
- log.info("创建Environment对象..");
- //创建EnvironmentConfig对象
- EnvironmentConfig envConf = new EnvironmentConfig();
- envConf.setAllowCreate(true); //如果设置了true则表示当数据库环境不存在时候重新创建一个数据库环境,默认为false
- envConf.setInitializeCache(true); //是否打开初始化缓存
- envConf.setInitializeLocking(true); //是否开启锁子系统
- envConf.setInitializeLogging(true); //是否开启日志子系统
- envConf.setTransactional(true); //是否使用事务,默认为false
- envConf.setRunRecovery(true);
- // envConf.setThreaded(true);
- // envConf.setLogAutoRemove(true);
- envConf.setMutexIncrement(22);
- // envConf.setLogInMemory(true);
- envConf.setLogRegionSize(1024 * 1024);
- // envConf.setLogBufferSize(30 * 1024 * 1024);
- envConf.setCacheSize(64 * 1024 * 1024);
- // envConf.setLockDetectMode(LockDetectMode.MINWRITE);
- //创建Environment对象,并初始化存储位置
- File fileHome = new File(fileHomePath);
- try {
- env = new Environment(fileHome, envConf);
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- log.info("文件位置未找到!");
- } catch (DatabaseException e) {
- e.printStackTrace();
- log.info("数据库加载错误");
- }
- }
- /**
- * 创建XmlManager对象
- */
- public void setXmlManager(){
- System.out.println("setXmlManager......");
- XmlManagerConfig managerConfig = new XmlManagerConfig();
- managerConfig.setAdoptEnvironment(true);
- // managerConfig.setAllowAutoOpen(true);
- //