FMDB的簡單使用

2021-07-28 05:23:49 字數 2918 閱讀 7901

首先,建立乙個類,採用單例模式,對videodatabase進行操作,在.h檔案中,我已經對各個方法的使用做了說明

//#import #import "hcvideoinfo.h"

typedef void (^hcvideoinfoarray)(nsarray *videolistarray);

@inte***ce hcvideodatabase : nsobject

//建立單例

+ (instancetype)manager;

//建立表

- (void)createtable;

/** * 插入一條資料庫

* */

- (bool)insertvideoinfo:(hcvideoinfo *)videoinfo;

/* *讀取所有video

*/- (void)queryvideoinfoarray:(hcvideoinfoarray)videolistarray;

/** * 刪除某條資料

*/- (bool)deletevideoinfofromvideodb:(hcvideoinfo *)videoinfo;

/** * 清空表(但不清除表結構)

*/- (bool)truncatetable;

/** * 清空表(同時清除表結構)

* */

- (bool)droptable;

-(void)closevideodb;

@end

接下來,對各個方法的使用做了具體說明

//#import "hcvideodatabase.h"

#import "fmdb.h"

#define khcdbtableneedupdate @"khcdbtableneedupdate" //表單是否需要更新

#define khcdbtableuser @"myvideo"

#define khcdbname @"i5family.db"

static hcvideodatabase *_sharedmanager = nil;

@inte***ce hcvideodatabase ()

/** * 具有執行緒安全的資料佇列

*/@property (nonatomic,strong) fmdatabasequeue *queue;

@end

@implementation hcvideodatabase

+(instancetype)manager);

return _sharedmanager;

}/**

* 資料庫佇列的初始化:本操作乙個

*/+(void)initialize

dlog(@"dbpath:%@",dbpath);

//建立佇列

fmdatabasequeue *queue =[fmdatabasequeue databasequeuewithpath:dbpath];

if(queue==nil) nslog(@"code=1:建立資料庫失敗,請檢查");

corefmdb.queue = queue;

//表單已經更新,需要刪除重新建立

nsuserdefaults *defaults = [nsuserdefaults standarduserdefaults];

bool updated = [[defaults objectforkey:khcdbtableneedupdate] boolvalue];

if (!updated)

//建立表單

[corefmdb createtable];

}/**

* 建立表結構

*/- (void)createtable

else

} else

}];}//檢查是否存在 video

- (bool)existviedoinfo:(hcvideoinfo*)info];

return exist;

}- (bool)insertvideoinfo:(hcvideoinfo *)videoinfo

return res;

}-(void)queryvideoinfoarray:(hcvideoinfoarray)videolistarray

// 取出查詢的結果集

while ([resultset next])

videolistarray(videoarray);

[resultset close];

}];}/**

* 刪除某條資訊

*/-(bool)deletevideoinfofromvideodb:(hcvideoinfo *)videoinfo

/** * 清空表(但不清除表結構)

* * @return 操作結果

*/- (bool)truncatetable

/** * 清空表(同時清除表結構)

* * @return 操作結果

*/- (bool)droptable

/** * 執行乙個更新語句

* * @param sql 更新語句的sql

* * @return 更新語句的執行結果

*/- (bool)executeupdate:(nsstring *)sql];

return updateres;

}// 關閉遊客 db

-(void)closevideodb

else

}];[self.queue close];

self.queue = nil;

_sharedmanager = nil;

}@end

FMDB的簡單使用

fmdb一種oc庫,是對sqlite進行了包裝。源 位址 fmdb中包含三個主要類 1.fmdatabase 代表乙個簡單sqlite資料庫,用來執行sql語句。2.fmresultset fmdatabase下執行sql的結果集。3.fmdatabasequeue 用於多執行緒下 執行緒安全 的資...

FMDB框架的簡單使用 swift

fmdb框架是oc的,在swift中使用,需要建立乙個橋接檔案轉換 在橋接檔案中匯入fndb的標頭檔案 static let shareinstance sqlitetool 建立和開啟乙個資料庫 如果有就直接開啟,如果沒有,建立乙個再開啟 lazy var db fmdatabase 例項化db物...

FMDB簡單應用

cpp view plain copy 1,拿到資料庫檔案的路徑 self.path nshomedirectory 2,拿到資料庫物件,開啟資料庫,如果這個資料庫不存在,就會自動建立 fmdatabase db fmdatabase databasewithpath path bool res d...