Android SQLite 动态新增表

上篇文章介绍了SQLite的建表方法,但是在项目中会遇到这样的问题。表结构不是一次就能定义得完整,随着项目的发展,需求的变更,数据库中的表项也可能随着增加或者发生改变。
如果从新定义表结构,对导致应用之前的数据库数据消失,而采用数据备份,再导入的方式有太过复杂。
经过一番查证,发现个可以通过SQLite中的onUpgrade()方法进行数据库的更新。而触发这个更新机制的关键就是数据库版本号!
通过更改版本号后调用数据库的open方法,系统会发现版本号的不同,从而调用onUpgrade()函数。那么再此回调函数中执行创建新表操作即可实习动态的新增表项。(同理,也可以新增或删除数据项)
原理很简单,这里就不贴代码了,直接上图:
这里写图片描述
其中getTableCreateSQLString()方法就是拼接建表SQL语句,具体方法实现可在上一篇文章中找到。
实际运用中若第一版app的数据库版本号是1,要想下个版本的app数据库中新增表项。必做的两个操作:
1,更改数据库版本号为大于1的版本;
2,在onUpgrade中写入建表语句。
然后编译新的app版本即可。
之前被这个问题困扰了很久,网上也不容易找到解决方案,直到看见了这个博客http://blog.csdn.net/long704480904/article/details/41325655 才发现然来只要跟新下数据库版本号就可以触发onUpgrade的执行。若要动态修改表属性可参考该文章。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值