如何将 sqldelight 中的新编译语句与 sqlbrite 一起使用?
Posted
技术标签:
【中文标题】如何将 sqldelight 中的新编译语句与 sqlbrite 一起使用?【英文标题】:How to use new compiled statements in sqldelight with sqlbrite? 【发布时间】:2017-03-08 03:18:00 【问题描述】:由于我无法从 BriteDatabase 获取 SQLiteOpenHelper 实例,如何从我的模型中创建已编译的插入/更新/删除语句?返回 SqlDelightStatement 的方法在 SqlDelight 0.5.1 中被标记为已弃用。
我正在使用 SqlBrite 0.8.0,我看到有一个 BriteDatabase#executeInsert(String, SQLiteStatement)
等等。
【问题讨论】:
【参考方案1】:2016 年 12 月 27 日编辑:
SQLBrite 1.1.0 及更高版本现在公开了自己的getWritableDatabase()
值得注意的是,调用getWritableDatabase()
可能会创建或迁移数据库,因此请确保您是从后台线程调用它!
【讨论】:
谢谢!我需要在数据库对象上调用close()
吗?
只有在您使用完数据库后才好。如果您在 SQLBrite 仍在使用时关闭数据库,您将遇到错误。因此,当您的应用程序即将关闭时,您可以调用 close
如果不通过 BriteDatabase 进行写入,是否仍会触发通知?
不,如果你想让反应部件工作,一切都必须通过 BriteDatabase
是的,使用 SQLite 语法:sqlite.org/lang_conflict.html 看起来像 INSERT ON CONFLICT IGNORE table (column) VALUES ('sample')
以上是关于如何将 sqldelight 中的新编译语句与 sqlbrite 一起使用?的主要内容,如果未能解决你的问题,请参考以下文章