将开发的android app 安装到手机上后,如何在如见代码中替换手机上原有的数据库

将开发的android app 安装到手机上后,如何在如见代码中替换手机上原有的数据库,第1张

android sqlite数据库,第一次调用getWritableDatabase或者getReadableDatabase后,就会在程序的包下创建一个数据库,之前执行SQLiteOpenHelper的onCreate方法,

当数据库创建了以后,是不会再创建的,只有通过升级数据库版本号来实现

当数据库的版本号发生了变化以后,SQLiteOpenHelper会调用onUpgrade方法

因此都是在onUpgrade来处理新增字段,新增表等 *** 作

要替换数据库

将原来数据库放到res/raw目录下,程序启动的时候,通过流读取了来,并写到你程序目录下

String dbfile = "/data"+ EnvironmentgetDataDirectory()getAbsolutePath() + "/"+ contextgetPackageName()+"数据库名"

InputStream is = contextgetResources()openRawResource(Rrawdata);

FileOutputStream fos = new FileOutputStream(dbfile);

byte[] buffer = new byte[1024];

int count = 0;

while ((count =isread(buffer)) > 0) {

foswrite(buffer, 0, count);

fosflush();

}

fosclose();

isclose();

这样就把数据库给替换了,但是通常不建议这么做

最好是在onUpgrade来处理

请采纳哈

编写一个类继承sqliteopenhelper即可,需要复写里面的几个方法,一个是创建数据库方法,首次运行的时候如果发现没有则会调用创建方法,一个是更新数据库方法,在数据库版本号变化的时候会调用更新方法,方便修改数据库结构,具体的可以百度一下,有很多详细的教程

比如

:应用21对应数据库版本是1,22对应的数据库版本是2,那么用户现在安装的是22版本的应用,那么他现在在覆盖安装上21版本的,这时候的数据库相关代码就会有问题,就是降级相关的。我意思是用户又使用之前的版本了,那么数据库版本号不是也降低了吗?这时候会报错的

每次打开数据库版本号,估计你并没有对数据库有新的 *** 作,所以还是以前的版本号:

以下的方式可以切换数据库版本号:

SQLiteDatabase db = SQLiteDatabaseopenDatabase(filegetPath(), null, SQLiteDatabaseOPEN_READWRITE);

dbbeginTransaction();

dbsetVersion(1);

dbsetTransactionSuccessful();

dbendTransaction();

以上就是关于将开发的android app 安装到手机上后,如何在如见代码中替换手机上原有的数据库全部的内容,包括:将开发的android app 安装到手机上后,如何在如见代码中替换手机上原有的数据库、Android怎么使用内置数据库sqllite、Android 数据库降级怎么处理啊等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10173817.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存