用于存储xml的数据库之DBXML简单介绍

数据库 Oracle
本文我们主要介绍了由Oracle开发的用于存储XML的数据库DBXML的用法总结,希望能对您有所帮助。

本文我们主要从两个方面介绍一下DBXML:什么是dbxml、dbxml用法简单介绍。

1、什么是dbxml

dbxml全称是:Berkeley DB XML,是由oracle开发的一款用于存储xml的数据库。它可以在多个平台下进行开发,它支持c/c++、java、perl、php、python.。同时它也是也款嵌入式数据库,他是把数据库文件信息存储在本地应用程序的相应位置,如果需要对数据库进行搜索时,则需要对这些文件进行读取,其读取方式是dbxml内部实现的。它是将xml文件进行解析,在将内容存储到dbxml数据库中,在搜索上它提供了xquery的查询方式。

2、dbxml用法简单介绍

此处主要对dbxml的初始化、添加内容和查找进行简单的讲解。   

首先要想使用dbxml就要实例化一个XmlManager对象,通过XmlManager对象的createContainer(“containerName”)方法创建一个用于存储xml文件的容器,也就相当与关系数据库的一个数据库。也可以通过openContainer(“containerName”)获得一个已有的容器,即获得一个数据库连接,便可对数据库进行操作。

获得一个数据库的容易后,便可将xml内容添加进去。通过createContainer或者openContainer后的一个XmlContainer对象后,可通过XmlContainer对象的一个方法putDocument(“docName”,content)将content内容添加到容器中(数据库中),此处的docName相当于关系数据库中的表名。除了这种想容器中添加XML内容外还可以通过XmlInputStream, XmlDocument和XmlEventWriter三个对象将硬盘中的xml文件通过流的形式写入DBXML中,这种方法本人也不是弄的太懂,还有待继续研究,故就不过多讲述,以免产生误导。

添加了xml内容添加到dbxml中之后,我们便可对其中的内容进行操作。这里将演示简单的查询操作,通过XmlQueryContext qc =mgr.createQueryContext();获得查询对象。假设我们在dbxml中添加了这段xml内容:<people><person><age>23</age><name>joe</name></person><person><age>43</age><name>mary</name></person></people>

现在想获得所有叫mary人的所有信息,可以设置一个查询要求的语句(类似与sql语句)

StringqueryString=    "collection('people.dbxml')/people/person[name=$name]"

这句话的意思是搜索一个名字为people.dbxml的容器(首先是有该容器,否则会报错),xml的开始标签为people,在people标签内的person标签,并且被person标签包含的name子标签的值为$name(此处是一个变量),通过qc对象的setVariableValue(“name”,new XmlValue(“mary”)),给$name赋值,相当于java里面的sql查询语句。再通过XmlQueryExpression expr = mgr.prepare(queryString,qc); XmlResults res= expr.execute(qc);查询结果的结果集是一个XmlValue对象的集合,循环遍历便可获得搜索的值。

3、总结:

dbxml基本拥有和其他类型的数据库相同的操作方法,如果需要应用DBXML还需要继续深入的研究其中的方法使用,和相应的管理。以使得DBXML能发挥它强大的功能。

关于DBXML数据库的知识就介绍到这里,希望能够对您有所帮助。

【编辑推荐】

  1. Oracle 11g R2的卸载与重装过程详解
  2. Oracle数据库Shared Pool优化过程详解
  3. RedHat Linux的Oracle 10g安装配置详解
  4. Oracle数据库使用存储过程创建自动增长列
  5. 谈一谈兼容Oracle和DB2开发时的注意事项
责任编辑:赵鹏 来源: CSDN博客
相关推荐

2009-07-01 11:08:14

JSP DestoryJSP Init数据库链接

2020-09-07 22:34:25

Graviton数据库键值存储

2013-03-25 10:26:19

XML数据库

2011-08-15 15:40:57

SQL Server 系统数据库

2011-08-11 16:08:55

Oracle数据库ASHAWR

2018-07-13 09:20:30

SQLite数据库存储

2011-08-03 13:28:08

Oracle数据库数据库控制文件

2019-06-20 15:25:14

MySQLL数据库存储

2019-08-27 15:00:09

MySQL数据库存储

2011-08-12 12:59:33

Oracle数据库同义词

2011-08-03 15:14:17

Excel XP数据库功能

2009-02-04 17:36:11

ibmdwXML

2018-11-05 15:14:42

MySQL编程语言技术

2010-06-30 14:24:08

SQL Server数

2009-07-31 16:29:47

ibmdwXML

2011-07-12 09:20:08

XML数据库

2011-07-12 10:09:08

XML数据库服务器

2011-07-20 17:31:36

关系型数据库

2011-08-05 09:33:56

OracleUser ProcesServer Proc

2011-08-10 17:00:45

DB2数据库存储过程
点赞
收藏

51CTO技术栈公众号