FMDB 與Sqlite3

初始化數(shù)據(jù)庫

首先:調(diào)用sqlite3_initialize , 作用:分配資源谣殊,初始化一些必要的數(shù)據(jù)結(jié)構(gòu)豌研;

sqlite3_shutdown,作用:釋放由sqlite3_initialize分配的資源珊膜;

連接數(shù)據(jù)庫:

通過sqlite3_open_xxx函數(shù)連接到名為filename的數(shù)據(jù)庫点弯,并通過參數(shù)ppDb返回指向該數(shù)據(jù)庫數(shù)據(jù)結(jié)構(gòu)的指針

SQLITE_API int SQLITE_STDCALL sqlite3_open(

const char *filename, ? ? ? ? ? ? ? ? /* Database filename (UTF-8) */

sqlite3 **ppDb ? ? ? ? ? ? ? ? ? ? ? ? ?/* OUT: SQLite db handle */

);

參數(shù)filename是要連接的SQlite3數(shù)據(jù)庫文件名字符串。

參數(shù)ppDb看起來有點復(fù)雜,它是一個指向指針的指針。

SQLITE_API int SQLITE_STDCALL sqlite3_open16(

const void *filename, ? ? ?/* Database filename (UTF-16) */

sqlite3** ppDb ? ? ? ? ? ? ?/* OUT: SQLite db handle */

);

SQLITE_API int SQLITE_STDCALL sqlite3_open_v2(

const ?char ?*filename, ? ? ? ? ?/* Database filename (UTF-8) */

sqlite3 ?**ppDb, ? ? ? ? ? ? ? ? ? /* OUT: SQLite db handle */

int flags, ? ? ? ? ? ? ? ? ? ? ? ? ? ? /* Flags */

const ? char ? *zVfs ? ? ? ? ? /* Name of VFS module to use */

);

1.1當flags值為SQLITE_OPEN_READONLY,表示:SQlite3數(shù)據(jù)庫文件以只讀的方式打開加匈,

如果該數(shù)據(jù)庫文件不存在,則sqlite3_open_v2函數(shù)執(zhí)行失敗仑荐,返回一個error雕拼。

1.2當flags值為SQLITE_OPEN_READWRITE,則SQlite3數(shù)據(jù)庫文件以可讀可寫的方式打開粘招,

如果該數(shù)據(jù)庫文件本身被操作系統(tǒng)設(shè)置為寫保護狀態(tài)啥寇,則以只讀的方式打開。

如果該數(shù)據(jù)庫文件不存在洒扎,則sqlite3_open_v2函數(shù)執(zhí)行失敗辑甜,返回一個error。

1.3當flags值為SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE袍冷,則SQlite3數(shù)據(jù)庫文件以可讀可寫的方式打開磷醋,如果該數(shù)據(jù)庫文件不存在則新建一個。

這也是sqlite3_open和sqlite3_open16函數(shù)的默認行為胡诗。除此之外子檀,flags還可以設(shè)置為其他標志,

當調(diào)用sqlite3_open_xxx函數(shù)時乃戈,該函數(shù)將分配一個新的SQlite3數(shù)據(jù)結(jié)構(gòu),然后初始化亩进,然后將指針ppDb指向它

示例:

int ?err =sqlite3_open( [self ?sqlitePath] , ?(sqlite3**)&_db );

if(err !=SQLITE_OK) {

NSLog(@"error opening!: %d", err);

returnNO;

}

關(guān)閉數(shù)據(jù)庫:

在使用完SQlite數(shù)據(jù)庫之后症虑,需要調(diào)用sqlite3_close函數(shù)關(guān)閉數(shù)據(jù)庫連接,釋放數(shù)據(jù)結(jié)構(gòu)所關(guān)聯(lián)的內(nèi)存归薛,刪除所有的臨時數(shù)據(jù)項谍憔。


參數(shù)符號:

語句參數(shù)跟隨SQL命令字符串一起傳入到sqlite3_prepare函數(shù)中,有如下幾種:

2.1.1 ? ? ?主籍? 一個自動索引的匿名參數(shù)习贫,如果一條語句中含有多個“?”語句參數(shù),則它們被隱式的賦予索引1,2…

insert into table_day ?(id, name ) value ( ?, ? );

2.1.2 ? ? :<name>

insert into table_day? (id, name ) value (:id, ?:name );


在FMBD使用

將模型轉(zhuǎn)為字典/數(shù)組千元;將 字典/數(shù)組 傳入綁定方法中

NSDictionary*dic =@{@"productId":@"123",@"serviceId":@"456",@"userId":@"789"};

NSString*sql =@"insert into t_notesCurrentDay (productId, serviceId, userId) values( :productId, ?:serviceId, :userId );";

BOOL isSuccess = [db executeUpdate: sql withParameterDictionary: dic];

if(isSuccess) {

NSLog(@"success");

}else{

NSLog(@"error");

}


NSArray *array =@[@"123112", @"456", @"789"];

NSString* sql =@"insert into t_notesCurrentDay (productId, serviceId, userId) values(?, ?, ? );";

BOOL isSuccess = [db executeUpdate: sql withArgumentsInArray: array];

if(isSuccess) {

NSLog(@"success");

}else{

NSLog(@"error");

}

注意:array中的元素的順序與sql中參數(shù)的順序一致苫昌。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市幸海,隨后出現(xiàn)的幾起案子祟身,更是在濱河造成了極大的恐慌奥务,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,561評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件袜硫,死亡現(xiàn)場離奇詭異氯葬,居然都是意外死亡,警方通過查閱死者的電腦和手機婉陷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評論 3 385
  • 文/潘曉璐 我一進店門帚称,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人秽澳,你說我怎么就攤上這事闯睹。” “怎么了肝集?”我有些...
    開封第一講書人閱讀 157,162評論 0 348
  • 文/不壞的土叔 我叫張陵瞻坝,是天一觀的道長。 經(jīng)常有香客問我杏瞻,道長所刀,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,470評論 1 283
  • 正文 為了忘掉前任捞挥,我火速辦了婚禮浮创,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘砌函。我一直安慰自己斩披,他們只是感情好,可當我...
    茶點故事閱讀 65,550評論 6 385
  • 文/花漫 我一把揭開白布讹俊。 她就那樣靜靜地躺著垦沉,像睡著了一般。 火紅的嫁衣襯著肌膚如雪仍劈。 梳的紋絲不亂的頭發(fā)上厕倍,一...
    開封第一講書人閱讀 49,806評論 1 290
  • 那天,我揣著相機與錄音贩疙,去河邊找鬼讹弯。 笑死,一個胖子當著我的面吹牛这溅,可吹牛的內(nèi)容都是我干的组民。 我是一名探鬼主播,決...
    沈念sama閱讀 38,951評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼悲靴,長吁一口氣:“原來是場噩夢啊……” “哼臭胜!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,712評論 0 266
  • 序言:老撾萬榮一對情侶失蹤庇楞,失蹤者是張志新(化名)和其女友劉穎榜配,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吕晌,經(jīng)...
    沈念sama閱讀 44,166評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡蛋褥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,510評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了睛驳。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片烙心。...
    茶點故事閱讀 38,643評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖乏沸,靈堂內(nèi)的尸體忽然破棺而出淫茵,到底是詐尸還是另有隱情,我是刑警寧澤蹬跃,帶...
    沈念sama閱讀 34,306評論 4 330
  • 正文 年R本政府宣布匙瘪,位于F島的核電站,受9級特大地震影響蝶缀,放射性物質(zhì)發(fā)生泄漏丹喻。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,930評論 3 313
  • 文/蒙蒙 一翁都、第九天 我趴在偏房一處隱蔽的房頂上張望碍论。 院中可真熱鬧,春花似錦柄慰、人聲如沸鳍悠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽藏研。三九已至,卻和暖如春概行,著一層夾襖步出監(jiān)牢的瞬間遥倦,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評論 1 266
  • 我被黑心中介騙來泰國打工占锯, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人缩筛。 一個月前我還...
    沈念sama閱讀 46,351評論 2 360
  • 正文 我出身青樓消略,卻偏偏與公主長得像,于是被迫代替她去往敵國和親瞎抛。 傳聞我的和親對象是個殘疾皇子艺演,可洞房花燭夜當晚...
    茶點故事閱讀 43,509評論 2 348

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