手机应用开发中常常会使用到数据库存储一些资料或者进行数据缓存,android中为我们提供了一个轻量的数据库。在上层进行了一层封装,同一时候还为我们提供了ContentProvider的框架。方便我们进行数据操作。以及在不同的程序之间进行数据共享。
本文介绍一下,我在使用数据库的一些我觉得比較好的习惯,欢迎与我讨论。
关于框架
通常网络操作。Json解析。我都会使用框架,这样能够非常好的帮助我处理异常。处理异步操作。可是数据库操作我则使用自带的SQLiteHelper和ContentProvider。这样android系统在SQLite上为我们提供的一层封装。因此,我不再使用第三方的SQLite框架。SQLiteDatabase和ContentProvider为我们提供一下函数
|
|
能够看到。android为我们提供的操作已经被封装了,非常多地方和别的ORM框架也是有一些类似的。并且在android中我们通常不会存储非常复杂的数据结构,不是必需给自己学习框架添加成本。
数据库建库升级等原则
先看一段代码
|
|
以上代码是摘自android 中的DownloadProvider的DatabaseHelper代码。我在这里主要是像推荐这样的数据库的建表,最初接触这样的建表方式是在曾经阅读DownloadManager的时候发现,发现android中这样的设计真的是很精妙。这样的方式。方便数据库的升级,在update数据库和create数据库的时候。能够共用建表,改动数据表的代码,同一时候能够清晰看到数据库的变化。
同一时候建议,在改动数据库版本号的时候。在版本号号上面添加凝视。写上数据库升级的内容,方便自己以后看到数据库的变化。以及其它人在看代码时候。了解到数据库的变化。
数据库建表和数据存储建议
一些简单的配置文件,不建议存到数据库,存到sharepreference中。方便存取,同一时候也提高訪问速度。
文件。图片等绝对不要存到数据库,存储文件路径到数据库中就可以。
一些非常复杂的数据,建议直接转成json存到数据库就可以。
一些缓存也能够这样存储。
其它要说的
数据库操作时候,不要在主线程操作。这是耗时操作,easy造成ANR.
在进行数据库中的数据显示时候。建议配合CursorLoader使用。这是android提供的异步数据载入。同一时候会在数据变化时候,自己主动又一次刷新数据。
其它。本文。本人乱扯。
如有你有异议,欢迎回复讨论。
原文地址:http://blog.isming.me/2014/10/13/good-database-use/,转载请注明出处。