有没有办法替换完整的SQLite数据库?我正在寻找构建一个包含大量数据的应用程序,我需要能够更新它。幸运的是,我能够验证数据库结构不会改变,只有数据。这样做有干净的方法吗?
- 编辑 -
道歉 - 我需要添加更多细节:
为了更新应用程序中的数据,计划只是替换将从服务器某处获取的数据库。所以我不会使用onUpgrade
或手动添加数据 - 我想转储现有文件并复制新文件以替换旧文件。
我认为数据库通常会存储在“/ data / data / YOUR_PACKAGE / databases /”中,我是否可以访问此目录?在这种情况下,我可以从服务器下载文件并将其复制到顶部(显然确保没有任何东西正在访问文件等)
答案 0 :(得分:2)
这个问题与我的问题相同:Can I download an SQLite db on /sdcard and access it from my Android app?
File dbfile = new File("/sdcard/mydb.sqlite" );
SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(dbfile, null);
System.out.println("Its open? " + db.isOpen());
答案 1 :(得分:0)
是onUpgrade
方法,如果通过构造函数传递新的数据库版本,则调用该方法。
在这里,您可以删除数据库并创建一个新数据库,或者您可以更改和创建表。
答案 2 :(得分:0)
不清楚你要做什么。
如果应用程序是只读的并且使用在应用程序外部创建的SQLite数据库,那么您只需替换SQLite数据库文件。
如果要更改数据库中的单个表,同时保持应用程序可写表不变,可以从现有表中删除数据,并使用INSERT INTO从其他数据库获取数据。您还可以使用提供的命令行工具和“.import”命令从CSV文件加载。