![](https://csdnimg.cn/release/download_crawler_static/5539257/bg1.jpg)
iOS开发中的sqlite数据库
前面写了一篇博文讲如何在C#中使用ADO访问各种数据库,在移动开发和嵌入式领域也有一个轻量级的开源关系型数据
库-sqlite。它的特点是零配置(无需服务器),单磁盘文件存储数据(就像 fopen一样),平台无关性,使用起来简单又
高效。这些特点让其非常适合移动开发和嵌入式领域。当然,sqlite也因其力求简单高效,也就限制了它对并发,海量数
据的处理。下面,我就再接再厉,来讲讲如何在iOS开发中使用sqlite数据库和第三方封装库FMDB,以及介绍一个MAC下开
源的可视化sqlite浏览器。
本文源码:https://github.com/kesalin/iOSSnippet/tree/master/SQLiteDemo
一,在 iOS 中的使用
在 iOS 中 sqlite3 库是一套纯 C 的接口,因此很方便地就可以在 obj-c 源码中无痕使用它,而且其使用方式与用
ADO 方式操作数据库大同小异-少了创建数据库链接一环而已(因为 sqlite 没有服务器的概念也就无需链接了)。
首先,需要引入 libsqlite3.0.dylib:
然后包含头文件:
#import "/usr/include/sqlite3.h"
打开或创建数据库
使用示例:(dbPath 为 NSString *)
关闭数据库
上面这个接口将关闭数据库,如果当前还有事务没有提交,会先执行 rollback 操作,然后再关闭数据库。
执行 sql 语句
SQLITE_API int sqlite3_open(
const char *filename, /* Database filename (UTF-8) */
sqlite3 **ppDb /* OUT: SQLite db handle */
);
// open database
//
int state = sqlite3_open([dbPath UTF8String], &database);
if (state == SQLITE_OK) {
DLOG(@" >> Succeed to open database. %@", dbPath);
}
else {
DLOG(@" >> Failed to open database. %@", dbPath);
}
SQLITE_API int sqlite3_close(sqlite3 *);
SQLITE_API int sqlite3_exec(
sqlite3*, /* An open database */
const char *sql, /* SQL to be evaluated */
int (*callback)(void*,int,char**,char**), /* Callback function */