是的,您需要安装与您使用的数据库后端相匹配的驱动程序。
BaseX 状态的(非常好的)文档在“SQL 模块”部分中:
该模块使用 JDBC 连接到 SQL 服务器。因此,您的 JDBC 驱动程序也需要添加到类路径中。如果您使用 BaseX 的完整发行版,您可以将驱动程序复制到 lib 目录中。例如,要连接到 MySQL,请下载 Connector/J 驱动程序并将存档解压缩到此目录中。
对于SQLite,这可能是xerial/sqlite-jdbc。将此JAR添加到您的类路径(或BaseXlib/
安装目录中的目录)应该可以让您开始运行。
似乎您的语法可能是错误的,因为您的示例缺少驱动程序初始化的任何提示,以及使用与 BaseX 文档中提到的连接字符串不同的连接字符串。但我不太了解 SQL,因此可能有有效的变体。测试文档的示例:
(: Initialize driver :)
sql:init("org.sqlite.JDBC"),
(: Establish a connection :)
let $conn := sql:connect("jdbc:sqlite:database.db")
return (
(: Create a new table :)
sql:execute($conn, "drop table if exists person"),
sql:execute($conn, "create table person (id integer, name string)"),
(: Run 10 updates :)
for $i in 1 to 10
let $q := "insert into person values(" || $i || ", '" || $i || "')"
return sql:execute($conn, $q),
(: Return table contents :)
sql:execute($conn, "select * from person")
)
我得到了记录的结果:
0
0
1
1
1
1
1
1
1
1
1
1
<sql:row xmlns:sql="http://basex.org/modules/sql">
<sql:column name="id">1</sql:column>
<sql:column name="name">1</sql:column>
</sql:row>
<sql:row xmlns:sql="http://basex.org/modules/sql">
<sql:column name="id">2</sql:column>
<sql:column name="name">2</sql:column>
</sql:row>
<sql:row xmlns:sql="http://basex.org/modules/sql">
<sql:column name="id">3</sql:column>
<sql:column name="name">3</sql:column>
</sql:row>
<sql:row xmlns:sql="http://basex.org/modules/sql">
<sql:column name="id">4</sql:column>
<sql:column name="name">4</sql:column>
</sql:row>
<sql:row xmlns:sql="http://basex.org/modules/sql">
<sql:column name="id">5</sql:column>
<sql:column name="name">5</sql:column>
</sql:row>
<sql:row xmlns:sql="http://basex.org/modules/sql">
<sql:column name="id">6</sql:column>
<sql:column name="name">6</sql:column>
</sql:row>
<sql:row xmlns:sql="http://basex.org/modules/sql">
<sql:column name="id">7</sql:column>
<sql:column name="name">7</sql:column>
</sql:row>
<sql:row xmlns:sql="http://basex.org/modules/sql">
<sql:column name="id">8</sql:column>
<sql:column name="name">8</sql:column>
</sql:row>
<sql:row xmlns:sql="http://basex.org/modules/sql">
<sql:column name="id">9</sql:column>
<sql:column name="name">9</sql:column>
</sql:row>
<sql:row xmlns:sql="http://basex.org/modules/sql">
<sql:column name="id">10</sql:column>
<sql:column name="name">10</sql:column>
</sql:row>