iOS 中數(shù)據(jù)庫的使用

在開發(fā)的過程中難免會遇到數(shù)據(jù)緩存的需求,這樣不僅可以增加界面的流暢度,還省去了一些不必要的請求.所以說還是很有必要的.下面為大家總結(jié)一下iOS 開發(fā)中FMDB這個庫的使用,這個庫對sql語句進行了封裝,讓我們調(diào)用的時候很方便.

首先,要去git上下載一個FMDB的庫,然后把這些導(dǎo)入你的工程

然后導(dǎo)入系統(tǒng)支持庫

最后導(dǎo)入頭文件#import "FMDB.h",就可以使用了.

通常情況下我們要創(chuàng)建一個全局的數(shù)據(jù)庫:?

@property(nonatomic,strong)FMDatabase * db;

下面開始是使用的步驟:

// 1.通過路徑創(chuàng)建數(shù)據(jù)庫

self.db = [FMDatabase databaseWithPath:sqlFilePath];

這里要說一下我們的儲存路徑"sqlFilePath",當(dāng)sqlFilePath為空字符的時候 @"",

會在臨時目錄創(chuàng)建一個空的數(shù)據(jù)庫當(dāng)FMDatabase連接關(guān)閉時,數(shù)據(jù)庫文件也被刪除.

當(dāng)sqlFilePath為nil的時候,會創(chuàng)建一個內(nèi)存中臨時數(shù)據(jù)庫,當(dāng)FMDatabase連接關(guān)閉時,數(shù)據(jù)庫會被銷毀.

還有一種就是你正常的保存路徑,這樣數(shù)據(jù)庫的內(nèi)容才會持久保存到本地.

// 2.打開數(shù)據(jù)庫

if ([self.db open]) {

NSLOG(@"打開成功");

BOOL success = [self.db executeUpdate:@"CREATE TABLE IF NOT EXISTS t_student (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, age INTEGER DEFAULT 1)"];

if (success) {

NSLOG(@"創(chuàng)建表成功");

} else {

NSLOG(@"創(chuàng)建表失敗");

}

} else {

NSLOG(@"打開失敗");

}

下面是數(shù)據(jù)庫的增刪改查操作

1.插入操作

BOOL success = [self.db executeUpdate:@"INSERT INTO t_student (name, age) VALUES (?, ?);", @"jack", @(10)];

if (success) {

NSLog(@"插入成功");

} else {

NSLog(@"插入失敗");

}

2. 刪除數(shù)據(jù)

BOOL success = [self.db executeUpdate:@"DELETE FROM t_student WHERE age > 20 AND age < 25;"];

if (success) {

NSLog(@"刪除成功");

} else {

NSLog(@"刪除失敗");

}

3.修改操作

BOOL success = [self.db executeUpdate:@"UPDATE t_student SET name = 'liwx' WHERE age > 12 AND age < 15;"];

if (success) {

NSLog(@"修改成功");

} else {

NSLog(@"修改失敗");

}

4. 查詢操作

需要注意的是,數(shù)據(jù)庫的增刪改查中,只有查詢操作是特殊的,語句跟其他不一樣:

FMResultSet *result = [self.db executeQuery:@"SELECT id, name, age FROM t_student WHERE age > 25;"];

while ([result next]) {

int ID = [result intForColumnIndex:0];

NSString *name = [result stringForColumnIndex:1];

int age = [result intForColumn:@"age"];

NSLog(@"ID: %zd, name: %@, age: %zd", ID, name, age);

}


當(dāng)然,其中的這些表名啊,參數(shù)名啊,個數(shù)啊都是自己定義的.使用的時候注意自己的命名就好

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容