如何在 Kotlin/Native 中使用 SQLite?

Cry*_*ser 5 sqlite kotlin kotlin-interop

对于多平台项目,我考虑Kotlin/Native,希望至少在业务逻辑和数据保存方面有一个通用的代码库。

为了保存数据,我想使用像 SQLite 这样的数据库。然而,根据另一个 stackoverflow 线程,如果我想编译为 Kotlin/Native,我不能使用任何 Java 文件。如果我理解正确的话,这也意味着我包含的任何 SQLite 库都不允许从 Java 导入。

在寻找这样的库时,我发现了 Jetbrain 的两个有趣的数据库项目,即Anko SQLiteExposed。然而,当深入研究它们的源代码时,在撰写本文时,两者都是从 Java 导入的(例如 java.sql)。这可能意味着我无法使用它们。

我的一个想法是使用基于 C 的 sqlite库,因为根据提到的线程,Kotlin/Native 代码允许使用 C 库。这也许是可能的,但我想知道是否没有建议更多类似 Kotlin 的方式在 Kotlin/Native 中使用 SQLite 或其他数据库?

Ale*_*nov 2

您确实需要使用 C SQLite 库,但大多数代码不应直接使用它。相反,您编写一个包装器,这将是您所询问的更像 Kotlin 的方式。

我还没有看到这样的包装器作为单独维护的项目完成(Kotlin/Native 的库还很少),但 Jetbrains 实际上在https://github.com/Kotlin/kotlinconf-spinner/tree中有一个基本的包装器/b1e66920ac7216d3dbc4b6b4625fb77efe23cff8/sql您可以将其用作您自己的基础。