FMDatabase操作sqlite資料庫

2021-07-05 05:12:46 字數 3116 閱讀 1673

fmdatabase – 表示乙個單獨的sqlite資料庫。 用來執行sqlite的命令。

fmresultset – 表示fmdatabase執行查詢後結果集。

fmdatabasequeue – 如果你想在多執行緒中執行多個查詢或更新,你應該使用該類。這是執行緒安全的。

通過指定sqlite資料庫檔案路徑來建立fmdatabase物件

fmdatabase *db = [fmdatabase databasewithpath:path];

if (![db open])    

}];  

像這樣,輕鬆地把簡單任務包裝到事務裡:

[queue intransaction:^(fmdatabase *db, bool *rollback)   

// etc…   

[db executeupdate:@"insert into mytable values (?)", [nsnumber numberwithint:4]];   

}];  

fmdatabasequeue  後台會建立系列化的g

-c-d佇列,並執行你傳給g-c-d佇列的塊。這意味著 你從多執行緒同時呼叫呼叫方法,

gdc也會按它接收的塊的順序來執行。誰也不會吵到誰的腳 ,每個人都幸福。

#import #import "fmdb.h"

@inte***ce sqlliteskstoreproduct : nsobject

-(bool)istanchu;

-(void)setnotrequest;

-(void)resetstarttimes;

-(void)addrestarttimes;

@end

#import "sqlliteskstoreproduct.h"

@inte***ce sqlliteskstoreproduct()

@property fmdatabase *database;

@end

@implementation sqlliteskstoreproduct

-(id)init

-(void)dealloc

-(bool) openskstoreproductdatabase

else

}-(bool) createlogininfotable

else

}-(bool)istanchu

nsdate* installdate=nil;

int restarttimes=0;

int id=-1;

fmresultset *resultset = [self.database executequery:@"select * from storeproduct"];

while ([resultset next])

installdate = [resultset dateforcolumn:@"installdate"];

restarttimes= [resultset intforcolumn:@"starttimes"];

id=[resultset intforcolumn:@"id"];

break;

} nscalendar *gregorian = [[nscalendar alloc] initwithcalendaridentifier:nsgregoriancalendar];

nsdate * curdate=[nsdate date];

nsuinteger unitflags = nsmonthcalendarunit | nsdaycalendarunit | nsyearcalendarunit;

nsdatecomponents *components = [gregorian components:unitflags fromdate:installdate todate:curdate options:0];

long days=[components day];

if (days > 7 && restarttimes >15) else

} else

}-(void)setnotrequest

int id=0;

fmresultset *resultset = [self.database executequery:@"select * from storeproduct"];

while ([resultset next])

[self.database executeupdatewithformat:@"update storeproduct set request = %d where id = %d",no,id];

}}-(void)resetstarttimes

int id=0;

fmresultset *resultset = [self.database executequery:@"select * from storeproduct"];

while ([resultset next])

nsnumber * intnumber=[nsnumber numberwithint:1];

[self.database executeupdatewithformat:@"update storeproduct set starttimes = %@ where id = %d",intnumber,id]; }}

-(void)addrestarttimes

int id=0;

fmresultset *resultset = [self.database executequery:@"select * from storeproduct"];

int restarttimes=0;

while ([resultset next])

nsnumber * intnumber=[nsnumber numberwithint:restarttimes];

[self.database executeupdatewithformat:@"update storeproduct set starttimes = %@ where id = %d",intnumber,id]; }}

@end

參考:

FMDatabase的用法介紹

本人以後都會不定時的寫一些關於ios開發的教程,大家希望可提些意見,大家希望寫些什麼,對大家有幫助的,希望幫到大家 fmdatabase其實是乙個很輕級的sqlite資料庫封裝庫,用object c封裝c,它主要有2個類 fmdatabase和fmresultset 它主要有這些檔案 然後,就需要新...

iOS開發 FMDatabase 使用

id integer primary key autoincrement 設定自增長主鍵 指定資料儲存路徑 fmdatabase 管理資料的類 增 刪 改 查 fmdatabase database fmdatabase alloc initwithpath path open 開啟資料庫 檔案 如...

FMDatabase 的使用方法

ios fmdatabase的使用方法 以下是fmdb的一些基本使用,fmdb框架其實只是一層很薄的封裝,主要的類也就兩個 fmdatabase和fmresultset 其中的fmresultset物件讓我想起了android中sqlite的cursor集合啊。fmdb的github位址是,補充 是...