Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 将平面文件加载到Android数据库表中_Database_Android_Sqlite - Fatal编程技术网

Database 将平面文件加载到Android数据库表中

Database 将平面文件加载到Android数据库表中,database,android,sqlite,Database,Android,Sqlite,在Android中,升级数据库时,所有数据都会丢失 我现在正在经历一个开发阶段,这迫使许多数据库升级 我不想在每次升级数据库时丢失所有数据(并且必须手动重新输入) 我希望将数据存储在平面文件中,并在每次数据库升级时将这些平面文件加载到各自的表中 在Android平台上该怎么做?我应该在哪里存储数据文件(res/raw) 我应该执行什么sql来加载这些文件?我会将平面文件放在res/raw中,除非它们是XML,在这种情况下,我会将它们放在res/XML中 至于在数据库中插入数据,我只需循环浏览平面

在Android中,升级数据库时,所有数据都会丢失

我现在正在经历一个开发阶段,这迫使许多数据库升级

我不想在每次升级数据库时丢失所有数据(并且必须手动重新输入)

我希望将数据存储在平面文件中,并在每次数据库升级时将这些平面文件加载到各自的表中

在Android平台上该怎么做?我应该在哪里存储数据文件(
res/raw


我应该执行什么sql来加载这些文件?

我会将平面文件放在
res/raw
中,除非它们是
XML
,在这种情况下,我会将它们放在
res/XML

至于在数据库中插入数据,我只需循环浏览平面文件中的值,并为每一行执行一次插入

快速浏览一下,我看不到Android中有任何可用的批插入方法


只需使用
文件读取器
XmlPullParser
读取平面文件,具体取决于文件类型。

我会将平面文件放在
res/raw
中,除非它们是
XML
,在这种情况下,我会将它们放在
res/XML

至于在数据库中插入数据,我只需循环浏览平面文件中的值,并为每一行执行一次插入

快速浏览一下,我看不到Android中有任何可用的批插入方法


根据文件类型,只需使用
文件读取器
XmlPullParser
在中读取平面文件。

mbaird对于存储平面文件有一个很好的答案。但是在您的情况下(如果我理解正确的话),您可以通过实现来绕过它。只需存储数据库版本并将其传递给构造函数。然后处理onUpgrade()中的任何更改。您不会丢失所有数据。

mbaird对于存储平面文件有一个很好的解决方案。但是在您的情况下(如果我理解正确的话),您可以通过实现来绕过它。只需存储数据库版本并将其传递给构造函数。然后处理onUpgrade()中的任何更改。您不会丢失所有数据。

这里有一个链接,指向一篇关于重新导入现有sqlite db的文章,可能会有帮助:这里有一个链接,指向一篇关于重新导入现有sqlite db的文章,可能会有帮助:如果您的文件是.csv格式的,您就不能使用import语句或其他方法将整个文件导入表吗。。。也就是说,不是独立插入每一行。如果文件是.csv格式的,难道不能使用导入语句或其他方法将整个文件导入到表中吗。。。也就是说,不是独立插入每一行。