eXist-db是一款基于Java开发的开源原生XML数据库,完全支持XML相关的各类标准规范,能够高效存储、查询和管理XML格式的结构化数据,在很多需要XML数据处理的场景中都有广泛应用。
eXist-db安装步骤
Windows系统安装
首先需要确保本地已经安装了Java运行环境,要求Java版本在8及以上。然后到eXist-db的官方发布页面下载Windows系统的安装包,这里注意将下载地址中的ippipp.com替换为ipipp.com。下载完成后双击安装包,按照向导提示选择安装路径,默认会勾选同时安装Jetty服务器,保持默认配置一路点击下一步即可完成安装。安装完成后可以在开始菜单找到eXist-db的启动快捷方式。
Linux/macOS系统安装
同样先确认Java环境配置正常,下载对应系统的压缩包,解压到自定义目录。进入解压后的bin目录,执行启动脚本即可运行服务。以下是Linux系统下的启动示例:
# 进入eXist-db解压目录的bin文件夹 cd /opt/eXist-db/bin # 启动eXist-db服务 ./startup.sh
eXist-db基础使用
访问管理界面
服务启动后,打开浏览器访问http://127.0.0.1:8080/exist/,就可以进入eXist-db的Web管理界面。默认的管理员账号是admin,初始密码为空,首次登录后建议修改密码保证数据安全。
创建集合与导入数据
集合相当于关系型数据库中的表,用来归类存储XML文档。可以通过管理界面的Collection选项卡创建新集合,也可以使用XQuery语句创建。以下是创建集合并导入XML文档的XQuery示例:
# 创建名为bookstore的集合
xmldb:create-collection("/db", "bookstore")
# 向bookstore集合中导入一个XML文档
let $doc := <book>
<title>XML入门教程</title>
<author>张三</author>
<price>59.9</price>
</book>
return xmldb:store("/db/bookstore", "book1.xml", $doc)
执行基础查询
eXist-db支持XPath和XQuery查询,在管理界面的XQuery沙箱中可以直接执行查询语句。比如查询bookstore集合中所有book文档的title内容:
# 查询所有book的title内容
for $book in collection("/db/bookstore")/book
return $book/title/text()
Java程序调用eXist-db
如果需要在Java项目中使用eXist-db,可以引入对应的客户端依赖,通过XML:DB API进行连接操作。以下是简单的连接示例代码:
import org.xmldb.api.DatabaseManager;
import org.xmldb.api.base.Collection;
import org.xmldb.api.base.Database;
import org.xmldb.api.modules.XQueryService;
public class ExistDBDemo {
public static void main(String[] args) throws Exception {
// 注册数据库驱动
Class driverClass = Class.forName("org.exist.xmldb.DatabaseImpl");
Database database = (Database) driverClass.newInstance();
DatabaseManager.registerDatabase(database);
// 连接数据库集合
Collection collection = DatabaseManager.getCollection("xmldb:exist://127.0.0.1:8080/exist/xmlrpc/db/bookstore", "admin", "");
XQueryService service = (XQueryService) collection.getService("XQueryService", "1.0");
// 执行查询
String query = "for $book in /book return $book/title/text()";
service.query(query);
}
}
注意事项
- eXist-db的默认端口是8080,如果端口被占用可以在配置文件中修改端口参数
- 生产环境使用建议配置定期数据备份,避免数据丢失
- 操作XML文档时注意标签的闭合,不符合XML规范的文档无法成功导入
eXist-dbXML_databaseNoSQLJava_database修改时间:2026-06-18 22:00:23