如何在Kotlin / Native中使用SQLite?

时间:2017-12-03 12:19:35

标签: sqlite kotlin kotlin-interop

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

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

在搜索这样一个库时,我发现Jetbrain有两个有趣的数据库项目,即Anko SQLiteExposed。但是,在挖掘源代码时,在编写本文时都要从Java导入(例如java.sql)。这可能意味着我无法使用它们。

我的一个想法是使用c-based sqlite库,因为根据mentioned thread,Kotlin / Native代码可以使用c库。这可能是可能的,但我想知道是否有更多的Kotlin建议使用SQLite或Kotlin / Native中的其他数据库?

1 个答案:

答案 0 :(得分:3)

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

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