gpt4 book ai didi

android - 如何将 Room 表导出为 CSV 格式?

转载 作者:行者123 更新时间:2023-12-04 14:34:28 26 4
gpt4 key购买 nike

我现在有一个应用程序,它使用多个实体将数据存储在 Room 数据库中。我需要的是获取表格的内容,将数据转换为 CSV 格式,然后通过电子邮件发送该格式。我已经确定了最后一部分,因为它只涉及通过带有 ACTION_SEND 的 Intent 发送文件。 .这很容易。

我知道我可以获得实际数据库的路径并操作该文件。然而,Room 的设计者不遗余力地将 SQLite 放入一个黑盒子,这似乎是个坏主意。

我知道我还可以在其中一个 DAO 中编写查询方法,该方法返回 CSV 格式的字符串,然后可以将其转换为 File 对象。但是,这是很多工作,如果其他人为我这样做,我不会浪费我的时间。

所以,这是我的问题:如何将 Room 数据库表导出为 CSV 格式的字符串?如果有多种方法可以这样做,是否有首选方法?

额外的问题:是否有任何首选方法来备份整个数据库?

最佳答案

I understand that I can get the path to the actual database and manipulate that file. However, Google has gone to such lengths to obscure the SQLite details that this seems like a bad idea.



谷歌提供 getOpenHelper() on your RoomDatabase ,如果您有理由想要更直接地使用数据库(例如,执行不在您的 DAO 中的任意 SQL)。

I know that I can also write a query method in one of the DAOs that returns a string in CSV format that can then be turned into a File object



恕我直言,创建 CSV 文件不是 DAO 的责任,就像填充小部件是 DAO 的责任一样。

How do I export a Room database table into a CSV formatted string?



创建某种 Report可以查询 DAO、生成 CSV 并将其写入所需位置的类。

或者,找到一些可以采用 Cursor 的现有代码并从中生成 CSV。使用 getOpenHelper()获取 SupportSQLiteDatabase , 你可以在上面 query()使用您想要的 SQL 生成 Cursor .

Is there any preferred way to back up the entire database?



恕我直言, close() RoomDatabase ,然后复制文件( using getDatabasePath() 和 Java 文件 I/O)。

关于android - 如何将 Room 表导出为 CSV 格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49133400/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com