SQLite,是一款輕型的數據庫,它設計目的是為了嵌入式程序的使用。Sqlite是由C實現,占用內存小,而且運行效率很高。所以現在也被廣泛用於包括浏覽器(支持html5的大部分浏覽器,ie除外)、ios、Android、windowphone等移動設備以及一些便攜需求的小型web應用系統。
由於sqlite的使用廣泛,不能一一涉及,因此在這裡就討論一下SQLite數據庫在ios開發中的一些使用方法。
在使用sqlite前需要首先引入sqlite的庫,由於sqlite是用C寫的,objc可以直接使用C代碼。但在使用sqlite前,一般都會使用Cocoatouch框架,這樣可以與objc保持一致,有利於開發的方便。這裡引用的Frameworks就是libsqlite3.dylib或libsqlite3.0.dylib。
在完成Frameworks引用之後,需要在操作sqlite數據庫的.m文件中引入相應的頭文件。#import “sqlite3.h”,這樣這能使用sqlite數據庫了。
而數據庫中最常用的操作就是創建數據庫、創建表、對數據的增刪改查、刪除數據庫和刪除表。下面對這些操作進行一一示范。
在使用數據庫之前需要建立相應數據庫文件,而數據庫文件是保存在文件系統。因此在創建或打開數據庫之前,需要清楚數據庫所在位置。這裡我們把數據庫文件放到Documents目錄下。
在.h文件中也加入#import“sqlite3.h”,並建立一個成員變量,sqlite3*database;
在.m文件中的代碼如下:
//找到Documents目錄
NSArray *docArr =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSAllDomainsMask, YES);
//選用數組中的第一個文件路徑
NSString *docPaths = [docArrobjectAtIndex:0];
//為自己的數據庫文件建立相應的文件路徑
NSString *sqlitePaths = [docPathsstringByAppendingPathComponent:@"testdb.sqlite"];
//判斷數據庫文件是否存在,存在既打開,不存在就創建,sqlite3_open的第一個參數是指數據庫文件名稱,第二個參數是指數據庫句柄
if (sqlite3_open([sqlitePathsUTF8String], &database)==SQLITE_OK) {
NSLog(@"open sqlite db ok!");
}
在數據庫打開後,如果沒有相應的數據表,需要建立相應的數據表。下面就是建表的代碼:
//在數據庫打開後,如果沒有數據表,需要建立相應的數據表
- (void)createTable
{
//收集錯誤信息字符
char *errorMsg;
constchar *createSql = "create table if not exists persons(idinteger primary key autoincrement,name kext)";
if (sqlite3_exec(database, createSql,NULL, NULL, &errorMsg) ==SQLITE_OK) {
NSLog(@"create ok.");
}
}