Android/JVM SQLite数据库

uyto3xhc  于 10个月前  发布在  Android
关注(0)|答案(1)|浏览(107)

我正在尝试让一个小的Android应用程序拥有自己的数据库,我的第一个想法是简单地使用Room持久化库,它创造了奇迹,这是一个很棒的库,但是...
后来我决定尝试一些奇怪的东西,并将该应用程序移植到桌面(JVM)。
我的计划是有3个gradle模块:

  • 普通逻辑
  • android(导入通用)
  • jvm(导入通用)

问题是我不能再使用Room了,因为它会在公共逻辑模块中,而不是Android模块。
我试着切换到Ktorm,它似乎很好,但Ktorm can't create tables from the schema,所以我不得不放弃它。
然后我尝试切换到Exposed,因为它具有从模式创建表的功能,但Exposed有一些问题:

我的最后一招是创建一些可怕的类,完全隐藏数据库,只提供我需要的最少的读写方法,并有某种名为android的标志,如果该标志为true或false,则完全改变其方法的操作,因此它将在Android上使用Room,在JVM上使用Exposed,但这听起来像是一个可怕的想法。
如何使用相同的代码在JVM和Android中创建和使用简单的SQLite数据库?
更新:我现在正在使用SQLDelight,尽管它不像Room那样舒适,它的文档也不是非常广泛,但它非常好,做了我想要的事情,我发现写这篇文章对遇到我同样疑问的人可能很有用。

fhg3lkii

fhg3lkii1#

您可以尝试SQLlin - A DSL SQLite library for Kotlin Multiplatform.,这是一个基于DSL和KSP的Kotlin多平台SQLite库。您可以使用Kotlin代码编写SQL语句,这些语句可以通过Kotlin编译器进行验证。

相关问题