如何将android的SQLite作为内存数据库刷新为sd?

时间:2016-01-15 08:25:35

标签: android sqlite ormlite

我正在研究我自己的slf4 for android的实现,它具有内存数据库并在需要时将数据刷新到sd。我们必须跳过使用默认android.util.Log的原因是我们需要获取日志“如果发生了什么”并且android日志已被截断。 (有没有办法配置android日志不截断记录,直到我们知道我们不再需要它了?)

我发现在将null作为数据库名称传递时,SQLite可以在内存模式下工作:Using in-memory sqlite android

如何将它冲到sd?只会刷新差异还是会重写所有数据库?这对性能原因很重要。

为了更详细,我将使用OrmLite来保存并从db请求。可能由于性能不是一个好主意,但我们应该从它开始并切换到原始请求,如果它不够快。是否会使用OrmLite帮助解决它(某些缓存或其他问题)?

1 个答案:

答案 0 :(得分:0)

如果我理解你,你想使用SQLite将新的数据记录放入SD卡。

如果我是你,如果在SD卡数据库上使用ATTACH命令用于新的SQLite,并使用特定参数合并你想要的表。

即,

ATTACH 'dbpath' AS AM;
BEGIN TRANSACTION;
CREATE TABLE AM.tableName0 (<rows>);
INSERT INTO AM.tableName0 (<rows>) SELECT <rows> FROM tableName0 ;
COMMIT;

DETACH DATABASE 'AM';

但我不认为写入SD卡的速度非常快。