0

我目前正在处理一个项目的数据库部分,我必须合并两个数据库的内容,我想问你在 Android API/SDK 本身中是否存在一个简单的 API 方法,它将我的数据库转储到一个SQL 文本文件。

实际上,我自己在 API 文档中没有发现任何关于这种实现的提示。而且我真的怀疑隐藏在窗帘后面的某个地方是否存在单线方法。

但是,我已经通过调用以下方法使用 Android Linux 的 sqlite3 shell 工具解决了问题:

String[] cmd = {"/system/bin/sh", "-c", ..., "sqlite3 ..."};
Runtime.getRuntime().exec( cmd );

我有两种选择,a) 将其直接通过管道传输到输出文件或 b) 使用 BufferedOutputStream 写入文件。

尽管如此,很可能由于兼容性问题,我要求您在 API 本身内使用更方便的方法,而不是在应用程序内使用关键的 shell 技巧。

我也对使用 Android 的数据库方法合并两个数据库的任何快速而漂亮的线索非常感兴趣。

谢谢。

4

1 回答 1

0

There's nothing built in to the API that will help you. You could query, and write the INSERT statements yourself. There's a blog entry (http://mgmblog.com/2009/02/06/export-an-android-sqlite-db-to-an-xml-file-on-the-sd-card/) , on building an XML file from the results of your query. A few tweaks, and you coule build your own dump file.

You don't say what kind of merge you need to do, but you might be able to use ORMLite, by doing something like override the equals method on your model objects to compare the records and/or combine data from certain fields (assuming the schema is the same), without having to write a lot of SQL.

于 2012-05-02T20:55:52.693 回答