iOS-FMDB事务【批量更新数据】
打开数据库(sqlite)
///打开数据库
+ (BOOL)openDataBase{ _TYDatabase = [[FMDatabase alloc]initWithPath:[self databasePath]];
if ([_TYDatabase open]) {
return YES;
}
return NO;
}
///数据库路径
+ (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语句数组
*/
- (void)beginTransaction:(NSArray *)arraySql;
{
//// static FMDatabase *_TYDatabase = nil;
BOOL isOpen=[_TYDatabase open];
if (!isOpen) {
NSLog(@"打开数据库失败!");
return;
}
///开始事物
[_TYDatabase beginTransaction];
BOOL isRollBack = NO;
@try {
for (int i = ; 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语句数组
*/
+ (void)beginTransactionT:(NSArray *)arraySql{
FMDatabaseQueue *databaseQueue = [FMDatabaseQueue databaseQueueWithPath:[self databasePath]];
[databaseQueue inTransaction:^(FMDatabase *db, BOOL *rollback) {
BOOL result = NO;
for (int i = ; i < arraySql.count; i++) {
result = [_TYDatabase executeUpdate:arraySql[i]];
}
if (result) {
NSLog(@"成功");
}
}];
}
iOS-FMDB事务【批量更新数据】的更多相关文章
- iOS中使用FMDB事务批量更新数据库
今天比较闲看到大家在群里讨论关于数据库操作的问题,其中谈到了"事务"这个词,坦白讲虽然作为计算机专业的学生,在上学的时候确实知道存储过程.触发器.事务等等这些名词的概念,但是由于毕 ...
- 使用FMDB事务批量更新数据库
今天比较闲看到大家在群里讨论关于数据库操作的问题,其中谈到了“事务”这个词,坦白讲虽然作为计算机专业的学生,在上学的时候确实知道存储过程.触发器.事务等等这些名词的概念,但是由于毕业后从事的不是服务器 ...
- Neo4j 第五篇:批量更新数据
相比图形数据的查询,Neo4j更新图形数据的速度较慢,通常情况下,Neo4j更新数据的工作流程是:每次数据更新都会执行一次数据库连接,打开一个事务,在事务中更新数据.当数据量非常大时,这种做法非常耗时 ...
- 【mysql】批量更新数据
概述 批量更新mysql数据表数据,上网搜索基本都会说4~5方法,本人使用的更新方式为: INSERT ... ON DUPLICATE KEY UPDATE Syntax 可参见官方网站:inser ...
- FreeSql (十四)批量更新数据
FreeSql支持丰富的更新数据方法,支持单条或批量更新,在特定的数据库执行还可以返回更新后的记录值. var connstr = "Data Source=127.0.0.1;Port=3 ...
- 批量更新数据(BatchUpdate)
批量更新数据(BatchUpdate) /// <summary> /// 批量更新数据,注意:如果有timestamp列,要移除 /// </summary> /// < ...
- 批量更新数据小心SQL触发器的陷阱
批量更新数据时候,Inserted和Deleted临时表也是批量的,但触发器只会调用执行一次!两个概念千万不要弄混淆! 错误的理解:例如:创建在A表上创建了一个Update触发器,里面写的是Updat ...
- SQL批量更新数据
SQL批量更新数据 step1:导入Excel数据, 具体见百度.注意点:一列中含有float型数据和文本数据的时候,导入要将Excel中的表格属性改成文本,或在数字项目前加个单引号. step2 ...
- mybatis学习之路----批量更新数据两种方法效率对比
原文:https://blog.csdn.net/xu1916659422/article/details/77971696/ 上节探讨了批量新增数据,这节探讨批量更新数据两种写法的效率问题. 实现方 ...
- mysql 常用命令,连接数据库,查看建表语句,批量导入数据,批量更新数据,连接查询
1. 1)MySQL 连接本地数据库,从cmd中进入mysql命令编辑器: root root分别为用户名和密码 mysql -uroot -proot 2)MySQL 连接本地数据库,用户名为“ro ...
随机推荐
- ZOJ3602:Count the Trees
我是在neuqvj上交的这题:http://vj.acmclub.cn/problem/viewProblem.action?id=17848 本来是挺容易的树同构题,可是节点数比较多,愣是把普通ha ...
- 2017 Multi-University Training Contest - Team 1 1003&&HDU 6035 Colorful Tree【树形dp】
Colorful Tree Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)T ...
- itoa函数,sprintf函数
itoa函数 itoa 为c语言的一个函数.itoa 函数是一个广泛应用的,从非标准扩展到标准的C语言.它不能被移植,因为它不是标准定义下的C语言,但是,编译器通常在一个不遵循程式标准的模式下允许其通 ...
- Spring学习日志之Spring Security配置
依赖引入 <dependency> <groupId>org.springframework.security</groupId> <artifactId&g ...
- 修改nopCommerce中的实体
对已有实体增加一个属性(对Category增加一个SomeNewProperty) 最近在研究nopcommerce,这里是对官网上文档的学习 ...
- linux一键安装
http://source.docs.cloudcare.cn/support/faq/webfaq/webfaq_11/?spm=5176.730006-cmgj000262.102.8.QsmPR ...
- win7系统如何在防火墙里开放端口
用到的端口需要在防火墙里开放,win7的比XP的要复杂一些,此方法同样适用于server2008系统 方法/步骤 1 依次点击"开始"-"控制面板"-" ...
- 怎样实现给DEDE的栏目增加栏目图片(1)
http://www.genban.org/news/dedecms-7577.html 前两天用DEDE做二次开发的时候,遇到一个问题,领导让给每个栏目增加一个栏目图片的功能,网上找了些东西,结合自 ...
- NV12格式转RGB的CUDA实现
NV12格式是yuv420格式的一种,NV12格式的u,v排布顺序为交错排布,假如一幅图像尺寸为W*H,则先Y分量有W*H个,然后U分量和V分量交错排布,U分量和V分量各有W*H/4个,U,V加起来总 ...
- UITableViewCell滑动删除及移动
实现Cell的滑动删除, 需要实现UITableView的代理UITableViewDelegate中如下方法: //先要设Cell可编辑 - (BOOL)tableView:(UITableView ...