储存管理数据有很多解决方法,当需要与大量数据打交道时,首选当然是使用数据库啦。SQLite
是一个开源的嵌入式关系数据库,它在2000年由D. Richard Hipp发布。SQLite
并不像DMBSs那么强大,比如MySQL或者SQL Server,而且它并不具有它们二者的所有特性。但是,它的伟大之处在于:
- 它是轻量级的,可移植性好,很容易使用,高效而且可靠
- 自包含一个嵌入式的SQL引擎,几乎你所有的SQL知识都能应用到
- SQLite嵌入到使用它的应用程序中,它们共用相同的进程空间,而不是单独的一个进程
- 在你的程序内部不需要网络配置,也不需要管理。因为客户端和服务器在同一进程空间运行
- SQLite 的数据库权限只依赖于文件系统,没有用户帐户的概念
- 完全被Apple支持,在iOS和Mac OS下都能使用
- 得到全世界开发者持续的技术支持,同时也会增加新特性
- SQLite 有数据库级锁定,没有网络服务器
- 它需要的内存,其它开销很小,适合用于嵌入式设备。你需要做的仅仅是把它正确的编译到你的程序
通常是不建议直接操作SQLite库,而是采用一些开源的第三方库来进行操作。比如FMDB,它对SQLite
做了不错的封装。
一些SQLite 3函数:
sqlite3_open:
用来创建并打开数据库文件,有两个参数,一个是数据库文件名,一个是数据库句柄。如果,文件不存在,则先创建再打开,存在则直接打开它。
sqlite3_prepare_v2:
此函数的目的是要在字符串格式中获取SQL语句,然后转化为SQLite 3所认可的可执行的格式。
sqlite3_step:
这个函数实际上就是执行由上个函数先前准备的SQL语句(查询),它可以被执行查询调用一次,当检索数据时则被调用多次。需要记住的是它不能被之前的sqlite3_prepare_v2函数所调用。
sqlite3_column_count:
返回的是一个表中包含的字段的所有列数。
sqlite3_column_text:
此方法返回的是其中一列的文本格式的内容,其实就是一个字符串或者字符值。接受两个参数:一个是SQLite查询语句,另一个是列的索引。
sqlite3_column_name:
返回列的名称。参数和上面函数相同。
sqlite3_changes:
返回经过语句查询得到的行数。
sqlite3_last_insert_rowid:
返回上次插入的行ID。
sqlite3_errmsg:
返回一个关于SQLite出错的描述
sqlite3_finalize:
从内存中删除一个预先准备好的语句。
sqlite3_close:
关闭一个已打开的数据库连接,它会在数据库执行完数据操作以及释放任何保留的系统资源后调用。