iOS開發 FMDB常用方法詳解

2021-07-01 19:57:33 字數 3464 閱讀 8565

//paths: ios下document路徑,document為ios中可讀寫的資料夾,在document中,可以通過列印沙盒路徑檢視資料庫

nsarray *paths = nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, yes);

nsstring *documentdirectory = [paths objectatindex:0];

//dbpath: 資料庫路徑

//建立資料庫例項 db ,如果路徑中不存在"db_name.db"的檔案,sqlite會自動建立"db_name.db"

fmdatabase *db= [fmdatabase databasewithpath:dbpath] ;

if (![db open])

#import 

#import "fmdatabase.h"

#import "fmdatabaseadditions.h"

@inte***ce

widbroot : nsobject

@property (retain, nonatomic) fmdatabase *db;

@property (retain, nonatomic) nsstring *dbname;

//+ (id)modelwithdbname:(nsstring *)dbname;

- (id)initwithdbname:(nsstring *)dbname;

// 刪除資料庫

- (void)deletedatabse;

// 資料庫儲存路徑

//- (nsstring *)getpath:(nsstring *)dbname;

// 開啟資料庫

- (void)readydatabse;

// 判斷是否存在表

- (bool) istableok:(nsstring *)tablename;

// 獲得表的資料條數

- (bool) gettableitemcount:(nsstring *)tablename;

// 建立表

- (bool) createtable:(nsstring *)tablename witharguments:(nsstring *)arguments;

// 刪除表-徹底刪除表

- (bool) deletetable:(nsstring *)tablename;

// 清除表-清資料

- (bool) erasetable:(nsstring *)tablename;

// 插入資料

- (bool)inserttable:(nsstring*)sql, ...;

// 修改資料

- (bool)updatetable:(nsstring*)sql, ...;

// 整型

- (nsinteger)getdb_integerdata:(nsstring *)tablename withfieldname:(nsstring *)fieldname;

// 布林型

- (bool)getdb_booldata:(nsstring *)tablename withfieldname:(nsstring *)fieldname;

// 字串型

- (nsstring *)getdb_stringdata:(nsstring *)tablename withfieldname:(nsstring *)fieldname;

// 二進位制資料型

- (nsdata *)getdb_bolbdata:(nsstring *)tablename withfieldname:(nsstring *)fieldname;

@end

// 資料庫儲存路徑(內部使用)  

- (nsstring *)getpath:(nsstring *)dbname

// 開啟資料庫

- (void)readydatabse

// kind of experimentalish.

[db setshouldcachestatements:yes];

} // 刪除資料庫

- (void)deletedatabse

}

} // 判斷是否存在表

- (bool) istableok:(nsstring *)tablename

else

} return

no;

} // 獲得表的資料條數

- (bool) gettableitemcount:(nsstring *)tablename

return

0;

} // 建立表

- (bool) createtable:(nsstring *)tablename witharguments:(nsstring *)arguments

return

yes;

} // 刪除表

- (bool) deletetable:(nsstring *)tablename

return

yes;

} // 清除表

- (bool) erasetable:(nsstring *)tablename

return

yes;

}

// 插入資料

- (bool)inserttable:(nsstring*)sql, ...

// 修改資料

- (bool)updatetable:(nsstring*)sql, ...

// 整型

- (nsinteger)getdb_integerdata:(nsstring *)tablename withfieldname:(nsstring *)fieldname

// 布林型

- (bool)getdb_booldata:(nsstring *)tablename withfieldname:(nsstring *)fieldname

// 字串型

- (nsstring *)getdb_stringdata:(nsstring *)tablename withfieldname:(nsstring *)fieldname

// 二進位制資料型

- (nsdata *)getdb_bolbdata:(nsstring *)tablename withfieldname:(nsstring *)fieldname

- (void)dealloc

@end

IOS開發 FMDB備忘

增 四種方式向資料表中插入資料 cpp view plain copy print?1 dbhelper sharedhelper db executeupdate insert into tb test username,values lizhongfu male 2 dbhelper share...

iOS開發 FMDB使用

demo位址 nslog path database fmdatabase alloc initwithpath path id欄位為自增欄位 name char 256位 age char 3位 char 2位 phone char 13位 address char 100位的 if databa...

ios開發FMDB匯入SQLCipher加密資料庫

工程用得fmdb做資料庫的操作,後期要對資料庫做加密,這裡有兩種方法 1.對資料庫內容加密,存的時候加密,用得時候解密。2.直接對資料庫檔案加密。這裡我選擇了第二種,原因不細說,自己決定。不推薦。後來在fmdb官方發現了這個 即可以用cocoapods來安裝支援sqlcipher加密資料庫的fmdb...