Skip to content

Latest commit

 

History

History
60 lines (38 loc) · 2.64 KB

README-zh.md

File metadata and controls

60 lines (38 loc) · 2.64 KB

cozo-lib-java

java

Cozo 数据库的 Java 库。

本文叙述的是如何安装设置库本身。有关如何使用 CozoDB(CozoScript)的信息,见 文档

Clojure 用户可使用 专门的 Clojure 库国内镜像)。

Android 用户请移步 这里国内镜像)。

安装

库可从 maven central 下载:

implementation 'io.github.cozodb:cozo_java:0.7.5'

使用

import org.cozodb.CozoDb;

class Main {
    public static void main(String[] args) {
        try {
            CozoDb db = new CozoDb();
            System.out.println(db.query("?[] <- [['hello', 'world!']]"));
            db.close();
        } catch (Throwable e) {
            throw new RuntimeException(e);
        }
    }
}

详情可参见 CozoDb 类的 JavaDocs。

工作原理

这个库会调用存储于本地路径 ~/.cozo_java_native_lib/ 下面的 JNI 原生库。如果所需要的原生库没有找到,则库会尝试从 GitHub 下载页 下载,下载时会在 stderr 中输出具体的信息。同样的原生库只需要下载一次。

并不是所有的平台都有预编译的原生库。如果你的平台没有,则在载入 CozoDb 类时会报错。

如果你无法联网,你需要将事先准备好的原生库放在对应的位置。

为什么不能直接把原生库打包到 JAR 里?第一,JAR 里面包含的原生库必须解压成单独的文件才能被调用,第二,如果要支持多种不同操作系统及处理器,则需要将所有的原生库都打包进去,这样包会变得非常大(安卓平台的 AAR 文件格式就不存在这个问题)。

由于网络原因无法下载原生库,怎么办?

如上一小节所叙,可以手动下载原生库然后放在需要的地方,具体在程序尝试下载时会有相关信息。

为方便国内用户,Gitee 发布页 里面有原生库下载的镜像(但是必须手动下载)。

编译原生库

详见 这里国内镜像)。