精:Berkeley DB XML入门详解

本文介绍了Berkeley DB XML的安装步骤以及如何在Java中使用它。首先,从官方站点下载并安装Berkeley DB XML,然后通过命令行或Java API访问数据库。在Java应用中,展示了如何初始化环境、创建容器,以及添、删、改、查文档和添加索引的功能。此外,还提供了将XML文档转换为Java类的示例。
摘要由CSDN通过智能技术生成

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中的应用
代码在附件中:
包括四个类:

Java代码 复制代码
  1. DbXmlContainerConfig.java --初始化环境、容器等信息   
  2. JAXBUtils.java            --将文档转换成java类   
  3. MyDbXmlTest.java          --包括添、删、改、查文档和添索引功能   
  4. PhoneBook.java            --文档对应的java类  
DbXmlContainerConfig.java --初始化环境、容器等信息
JAXBUtils.java            --将文档转换成java类
MyDbXmlTest.java          --包括添、删、改、查文档和添索引功能
PhoneBook.java            --文档对应的java类



DbXmlContainerConfig.java --初始化环境、容器等信息:

Java代码 复制代码
  1. package com.test.berkeley.service.mytest;   
  2.   
  3. import java.io.File;   
  4. import java.io.FileNotFoundException;   
  5. import java.util.HashMap;   
  6. import java.util.Map;   
  7. import java.util.logging.Level;   
  8. import java.util.logging.Logger;   
  9.   
  10. import com.sleepycat.db.DatabaseException;   
  11. import com.sleepycat.db.Environment;   
  12. import com.sleepycat.db.EnvironmentConfig;   
  13. import com.sleepycat.dbxml.XmlContainer;   
  14. import com.sleepycat.dbxml.XmlContainerConfig;   
  15. import com.sleepycat.dbxml.XmlException;   
  16. import com.sleepycat.dbxml.XmlManager;   
  17. import com.sleepycat.dbxml.XmlManagerConfig;   
  18.   
  19. public class DbXmlContainerConfig {   
  20.     private Logger log = Logger.getAnonymousLogger();   
  21.     private String fileHomePath = "E:/test/dbxml/data";   
  22.        
  23.     private static DbXmlContainerConfig dbxmlObj = null;   
  24.     private Environment env = null;   
  25.     private XmlManager xManager = null;   
  26.     private XmlContainer xCont = null;   
  27.     private Map<String, XmlContainer> xmlContainerMap;   
  28.   
  29.     /**  
  30.      * 初始化  
  31.      */  
  32.     private DbXmlContainerConfig(){   
  33.         setEnvironment();   
  34.         setXmlManager();   
  35.         xmlContainerMap = new HashMap<String, XmlContainer>();   
  36.     }   
  37.     /**  
  38.      * 获得实例  
  39.      * @return  
  40.      */  
  41.     public static DbXmlContainerConfig getInstance(){   
  42.         if(dbxmlObj == null){   
  43.             dbxmlObj = new DbXmlContainerConfig();   
  44.         }   
  45.         return dbxmlObj;   
  46.     }   
  47.        
  48.     /**  
  49.      * 创建Environment对象  
  50.      */  
  51.     public void setEnvironment(){   
  52.         log.info("创建Environment对象..");   
  53.         //创建EnvironmentConfig对象   
  54.         EnvironmentConfig envConf = new EnvironmentConfig();   
  55.         envConf.setAllowCreate(true);       //如果设置了true则表示当数据库环境不存在时候重新创建一个数据库环境,默认为false   
  56.         envConf.setInitializeCache(true);   //是否打开初始化缓存   
  57.         envConf.setInitializeLocking(true); //是否开启锁子系统   
  58.         envConf.setInitializeLogging(true); //是否开启日志子系统   
  59.         envConf.setTransactional(true);     //是否使用事务,默认为false   
  60.         envConf.setRunRecovery(true);   
  61. //      envConf.setThreaded(true);   
  62. //      envConf.setLogAutoRemove(true);   
  63.         envConf.setMutexIncrement(22);   
  64. //      envConf.setLogInMemory(true);   
  65.         envConf.setLogRegionSize(1024 * 1024);   
  66. //      envConf.setLogBufferSize(30 * 1024 * 1024);   
  67.         envConf.setCacheSize(64 * 1024 * 1024);   
  68. //      envConf.setLockDetectMode(LockDetectMode.MINWRITE);   
  69.            
  70.         //创建Environment对象,并初始化存储位置   
  71.         File fileHome = new File(fileHomePath);   
  72.         try {   
  73.             env = new Environment(fileHome, envConf);   
  74.         } catch (FileNotFoundException e) {   
  75.             e.printStackTrace();   
  76.             log.info("文件位置未找到!");   
  77.         } catch (DatabaseException e) {   
  78.             e.printStackTrace();   
  79.             log.info("数据库加载错误");   
  80.         }   
  81.     }   
  82.        
  83.     /**  
  84.      * 创建XmlManager对象  
  85.      */  
  86.     public void setXmlManager(){   
  87.         System.out.println("setXmlManager......");   
  88.         XmlManagerConfig managerConfig = new XmlManagerConfig();   
  89.         managerConfig.setAdoptEnvironment(true);   
  90. //        managerConfig.setAllowAutoOpen(true);   
  91. //  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值