Android数据存储方式之 SQLite
轻量级的数据库
- 主要特点包括:
- 轻量级:一个动态库 、单个文件。
- 独立性: 没有依赖、无需安装。
- 隔离性: 全部在一个文件夹中。
- 跨平台: 支持众多操作系统。
- 多语言接口: 支持众多编程语言。
- 安全性: 事务处理。
关于事务处理的安全性问题。
-通过数据库的独占性和共享锁来实现独立事务处理。
-多个线程可以在同一事件从同一数据库读取数据,但只有一个可以写入数据。(好处:不会造成数据库同步。 坏处:效率可能会降低。)关于SQLite的数据类型
- 支持NULL(空值)、INTEGER(整型)、REL(浮点值)、TEXT(字符串值)、BLOB(二进制对象)数据类型。
- 动态数据类型(弱引用)
- 单某个值插入数据库时,SQLite将会检查它的数据类型,如果它的数据类型与关联的列不匹配,SQLite则会将该值尝试转换成该列的数据类型,如果不能转换,则该值作为本身的数据类型存储。
- 使用须知:
- 由于资源占用,性能良好和零管理成本,适合嵌入式数据库。例如Android、ios。
- 没有可用与SQL的网络服务器比,只能通过网络共享,可能会存在文件锁定和性能问题。
- 只提供数据库级的锁定。
- 没有用户锁定概念,而是根据文件系统确定所有数据库的权限。
- 在Android中如何使用SQLite
- SQLiteDatabase:
- SQLiteOpenHelper
- SQLiteDatabase:
- 提供一些管理SQLite数据库的类,是一个数据库访问类,封装了一系列数据库操作的API。。
- 提供创建、删除、执行SQL的命令,并执行其他常见数据库管理事务的方法。
- 每个程序数据库的名字都是唯一的。
SQLiteOpenHelper类是SQLiteDatabase的帮助类,这个类主要用于打开或者创建数据库,并返回数据库对象,同时对数据库的版本进行管理,并且它是一个抽象类,需要继承它并实现里面的两个抽象方法:
1. onCreate(SQLiteDatabase):在数据库第一次生成的时候会调用这个方法,一般在这个方法里生成数据库表。
2. onUpgrade(SQLiteDatabase,int,int):当数据库需要升级的时候,系统会调用这个方法。一般在这个方法里边删除原有数据表,并创建新的数据表。