iOS中FMDB事務實現(xiàn)批量更新數(shù)據(jù)
更新時間:2017年11月13日 10:50:27 作者:小圭哥
這篇文章主要為大家詳細介紹了iOS中FMDB事務實現(xiàn)批量更新數(shù)據(jù),具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了iOS中FMDB事務實現(xiàn)批量更新數(shù)據(jù),供大家參考,具體內(nèi)容如下
打開數(shù)據(jù)庫(sqlite)
///打開數(shù)據(jù)庫
+ (BOOL)openDataBase{
_TYDatabase = [[FMDatabase alloc]initWithPath:[self databasePath]];
if ([_TYDatabase open]) {
return YES;
}
return NO;
}
///數(shù)據(jù)庫路徑
+ (NSString *)databasePath{
NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString *dataPath = [documentPath stringByAppendingPathComponent:@"TY.SQLite"];
NSFileManager *fileM = [NSFileManager defaultManager];
if (![fileM fileExistsAtPath:dataPath]) {
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"TY" ofType:@"SQLite"];
[fileM copyItemAtPath:filePath toPath:dataPath error:nil];
}
NSLog(@"%@",dataPath);
return dataPath;
}
事務
/**
事務
arraySql:SQL語句數(shù)組
*/
- (void)beginTransaction:(NSArray *)arraySql;
{
//// static FMDatabase *_TYDatabase = nil;
BOOL isOpen=[_TYDatabase open];
if (!isOpen) {
NSLog(@"打開數(shù)據(jù)庫失??!");
return;
}
///開始事物
[_TYDatabase beginTransaction];
BOOL isRollBack = NO;
@try {
for (int i = 0; i<arraySql.count; i++) {
BOOL result = [_TYDatabase executeUpdate:arraySql[i]];
if (!result) {
NSLog(@"操作失敗【%d】== SQL:%@",i,arraySql[i]);
}
}
}
@catch (NSException *exception) {
isRollBack = YES;
///回滾
[_TYDatabase rollback];
}
@finally {
if (!isRollBack) {
///提交
[_TYDatabase commit];
}
}
[_TYDatabase close];
}
多線程事務
/**
多線程事務
arraySql:SQL語句數(shù)組
*/
+ (void)beginTransactionT:(NSArray *)arraySql{
FMDatabaseQueue *databaseQueue = [FMDatabaseQueue databaseQueueWithPath:[self databasePath]];
[databaseQueue inTransaction:^(FMDatabase *db, BOOL *rollback) {
BOOL result = NO;
for (int i = 0; i < arraySql.count; i++) {
result = [_TYDatabase executeUpdate:arraySql[i]];
}
if (result) {
NSLog(@"成功");
}
}];
}
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
iOS10添加本地推送(Local Notification)實例
這篇文章主要為大家詳細介紹了iOS10添加本地推送(Local Notification)實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-09-09
iOS App設計模式開發(fā)中策略模式的實現(xiàn)示例
這篇文章主要介紹了iOS App設計模式開發(fā)中策略模式的實現(xiàn)示例,例子采用傳統(tǒng)的Objective-C語言編寫,需要的朋友可以參考下2016-03-03
iOS中使用NSProgress類來創(chuàng)建UI進度條的方法詳解
NSProgress是iOS7以后引入的用于制作進度條的類,能夠監(jiān)聽多個任務,這里就為大家?guī)韎OS中使用NSProgress類來創(chuàng)建UI進度條的方法詳解,需要的朋友可以參考下2016-06-06
Swift 2.1 為 UIView 添加點擊事件和點擊效果
本文主要介紹 Swift UIView,這里給大家提供代碼示例作為參考為UIView 添加點擊事件和點擊效果,希望能幫助IOS開發(fā)的同學2016-07-07
iOS中利用CAEmitterLayer實現(xiàn)粒子動畫詳解
粒子效果應該對現(xiàn)在很多人來說并不陌生,我們之前也分享了一些相關文章,下面這篇文章主要給大家介紹了關于iOS中利用CAEmitterLayer實現(xiàn)粒子動畫的相關資料,文中介紹的非常詳細,需要的朋友們下面來一起看看吧。2017-06-06
IOS應用內(nèi)跳轉系統(tǒng)設置相關界面的方法
在iOS開發(fā)中,有時會有跳轉系統(tǒng)設置界面的需求,例如提示用戶打開藍牙或者WIFI,提醒用戶打開推送或者位置權限等,接下來通過本文給大家介紹IOS應用內(nèi)跳轉系統(tǒng)設置相關界面的方法,喜歡的朋友參考下2016-02-02

