如何在Kotlin / Native中使用SQLite?

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

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

在搜索这样一个图书馆,我发现了两个有趣的数据库项目由Jetbrain,即安科SQLite和暴露 。 但是,在挖掘他们的源代码的时候,在写这篇文章的时候都是从Java(例如java.sql)导入的。 这可能意味着我不能使用它们。

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

您确实需要使用C SQLite库,但是大部分代码不能直接使用。 相反,你写一个包装,这将是更多的Kotlin你所问的方式。

我还没有看到这样一个包装完成作为一个单独的维护项目(有Kotlin /本机还有很少的库),但Jetbrains实际上有一个在https://github.com/JetBrains/kotlinconf-spinner/tree / master / kotlin-native / samples / fullstack / sql ,您可以使用它作为您自己的基础。