6.3.2 数据存储与访问之——又见SQLite数据库

云端遗梦录

6.3.2 数据存储与访问之——又见SQLite数据库

分类 Android 基础入门教程

本节引言:


1.SQLite事务

6.3.2 数据存储与访问之——又见SQLite数据库

简单点说就是:写在事务里的所有数据库操作都成功,事务提交,否则,事务回滚,就是回到前面 的状态——未执行数据库操作的时候!另外,前面我们也将了,在data/data/<包名>/database/目录 下除了有我们创建的db文件外,还有一个xxx.db-journal这个文件就是用来让数据库支持事务而 产生的 临时的日志文件!


2.SQLite存储大二进制文件

当然,一般我们很少往数据库中存储大二进制文件,比如图片,音频,视频等,对于这些我们一般 是存储文件路径,但总会有些奇葩的需求,某天你突然想把这些文件存到数据库里,下面我们以 图片为例子,将图片保存到SQLite中,以及读取SQLite中的图片!

6.3.2 数据存储与访问之——又见SQLite数据库


3.SimpleCursorAdapter绑定数据库数据

当然,这个玩玩可以,还是不建议使用,尽管用起来很简单! 其实在讲ContentProvider我们就使用过这个东西来绑定联系人列表!这里就不写实例了, 直接上核心代码!需要的自己捣鼓捣鼓就好了,另外,现在我们一般很少自己写数据库的东西 ,一般是通过第三方的框架:ormlite,greenDao等,在进阶部分,我们会再来学习~

6.3.2 数据存储与访问之——又见SQLite数据库


4.数据库升级的一些集锦

PS:好吧,这一块我并没有做过,始终是项目经验不够,公司的产品都是定位类的,刚看过公司 项目,发现前人留下的代码是:onCreate()创建DB,然后onUpgrade()把前面的DB删掉,然后 再调用onCreate()方法!看了几个版本的代码,发现并没有数据库升级的操作...没得借鉴, 只能参考下别人的做法了,下面是小猪查阅资料后的一些归纳,如果有什么不对,欢迎指出, 可能有些第三方的框架已经弄好了这个,时间关系,就不慢慢去考究了!知道可以留言,谢谢!

1)什么是数据库版本升级?怎么升级法?

数据库版本 andoid对应版本 内容
v1.0 1 第一个版本,包含两个字段...
v1.1 2 数据保留,新增user_name字段

2)一些疑问以及相关解决方案

①应用升级,数据库文件是否会删除?

②如果我想删除表中某个字段或者增加一个新的字段,原先的数据还在吗?

③你刚说的那种粗暴的更新数据库版本的方式,不保留数据的,可以贴下吗?

④比如是这种,假如我们已经升级到第三个版本了,我们在第二个版本增加了一个表, 然后第三个版本也增加了一个表,加入用户直接从第一个版本升级到第三个版本,这样 没经过第二个版本,就没有增加的那个表,这可怎么破?

⑤旧表的设计太糟糕,很多字段要改,改动太多,想建一个新表,但是表名要一样 而且以前的一些数据要保存到新表中!


本节小结:

版权声明:本页面内容旨在传播知识,为用户自行发布,若有侵权等问题请及时与本网联系,我们将第一时间处理。E-mail:284563525@qq.com

目录[+]

取消
微信二维码
微信二维码
支付宝二维码