數(shù)據(jù)持久化之sqlite

首先附上SQL語句學習地址,供大家學習參考!

第一步獲取沙箱目錄

//定義數(shù)據(jù)庫名字
#define DBFILE_NAME @"NotesList.sqlite3"

NSString *documentDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, TRUE) lastObject];
     self.plistFilePath = [documentDirectory stringByAppendingPathComponent:DBFILE_NAME];

第二步:初始化數(shù)據(jù)庫

const char *cpath = [self.plistFilePath UTF8String];

    if (sqlite3_open(cpath, &db) != SQLITE_OK) {
        NSLog(@"數(shù)據(jù)庫打開失敗割卖。");
    } else {
        NSString *sql = [NSString stringWithFormat:@"CREATE TABLE IF NOT EXISTS Note (cdate TEXT PRIMARY KEY, content TEXT);"];
        const char *cSql = [sql UTF8String];

        if (sqlite3_exec(db, cSql, NULL, NULL, NULL) != SQLITE_OK) {
            NSLog(@"建表失敗。");
        }
    }
    sqlite3_close(db);

接下來就可以查詢,插入,刪除等動作了

以查詢?yōu)槔唧w步驟如下:

1.使用sqlite3_open函數(shù)打開數(shù)據(jù)庫
2.使用sqlite3_prepare_v2函數(shù)預處理SQL語句//將SQL變成二進制,提高執(zhí)行速度
3.使用sqlite3_bind_text函數(shù)綁定參數(shù)
4.使用sqlite3_step函數(shù)執(zhí)行sql語句,遍歷結果集
5.使用sqlite3_column_text等函數(shù)提取字段數(shù)據(jù)
6.使用sqlite3_finalize和sqlite3_close函數(shù)釋放資源
代碼如下:

//按照主鍵查詢數(shù)據(jù)方法
- (Note *)findById:(Note *)model {
    const char *cpath = [self.plistFilePath UTF8String];

    if (sqlite3_open(cpath, &db) != SQLITE_OK) {
        NSLog(@"數(shù)據(jù)庫打開失敗。");
    } else {
        NSString *sql = @"SELECT cdate,content FROM Note where cdate =?";
        const char *cSql = [sql UTF8String];

         //語句對象
        sqlite3_stmt *statement;
        //預處理過程
        if (sqlite3_prepare_v2(db, cSql, -1, &statement, NULL) == SQLITE_OK) {
            //準備參數(shù)
            NSString *strDate = [self.dateFormatter stringFromDate:model.date];
            const char *cDate = [strDate UTF8String];

            //綁定參數(shù)開始
            sqlite3_bind_text(statement, 1, cDate, -1, NULL);

            //執(zhí)行查詢
            if (sqlite3_step(statement) == SQLITE_ROW) {

                char *bufDate = (char *) sqlite3_column_text(statement, 0);
                NSString *strDate = [[NSString alloc] initWithUTF8String:bufDate];
                NSDate *date = [self.dateFormatter dateFromString:strDate];

                char *bufContent = (char *) sqlite3_column_text(statement, 1);
                NSString *strContent = [[NSString alloc] initWithUTF8String:bufContent];

                Note *note = [[Note alloc] initWithDate:date content:strContent];

                sqlite3_finalize(statement);
                sqlite3_close(db);

                return note;
            }
        }
        sqlite3_finalize(statement);
    }
    sqlite3_close(db);
    return nil;
}

  • 插入sql
    NSString *sql = @"INSERT OR REPLACE INTO note (cdate, content) VALUES (?,?)";
  • 修改sql
    NSString *sql = @"UPDATE note set content=? where cdate =?";
  • 查詢所有sql
    NSString *sql = @"SELECT cdate,content FROM Note";
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子金拒,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瑰艘,死亡現(xiàn)場離奇詭異,居然都是意外死亡肤舞,警方通過查閱死者的電腦和手機紫新,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來李剖,“玉大人芒率,你說我怎么就攤上這事「菟常” “怎么了偶芍?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長德玫。 經(jīng)常有香客問我匪蟀,道長,這世上最難降的妖魔是什么宰僧? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任材彪,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘查刻。我一直安慰自己键兜,他們只是感情好,可當我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布穗泵。 她就那樣靜靜地躺著普气,像睡著了一般。 火紅的嫁衣襯著肌膚如雪佃延。 梳的紋絲不亂的頭發(fā)上现诀,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天,我揣著相機與錄音履肃,去河邊找鬼仔沿。 笑死,一個胖子當著我的面吹牛尺棋,可吹牛的內(nèi)容都是我干的封锉。 我是一名探鬼主播,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼膘螟,長吁一口氣:“原來是場噩夢啊……” “哼成福!你這毒婦竟也來了?” 一聲冷哼從身側響起荆残,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤奴艾,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后内斯,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蕴潦,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年俘闯,在試婚紗的時候發(fā)現(xiàn)自己被綠了潭苞。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡备徐,死狀恐怖萄传,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蜜猾,我是刑警寧澤秀菱,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站蹭睡,受9級特大地震影響衍菱,放射性物質發(fā)生泄漏。R本人自食惡果不足惜肩豁,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一脊串、第九天 我趴在偏房一處隱蔽的房頂上張望辫呻。 院中可真熱鬧,春花似錦琼锋、人聲如沸放闺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽怖侦。三九已至,卻和暖如春谜叹,著一層夾襖步出監(jiān)牢的瞬間匾寝,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工荷腊, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留艳悔,地道東北人。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓女仰,卻偏偏與公主長得像猜年,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子董栽,可洞房花燭夜當晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容