数据库操作(fmdb多线程操作)
来源:互联网 发布:php referer 编辑:程序博客网 时间:2024/06/08 04:08
1.导入
-1.三方库fmdb
-2.导入处理多线程的头文件
#import "FMDatabaseQueue.h"
-3.导入系统的sqlite
2.修改
-1.修改三方库的非arc改为arc:-fno-objc-arc
3.创建
-1.创建数据库创建数据库实例对象,用于处理多线程的问题
FMDatabaseQueue *queue;
-2.拼接存储地址,同数据库操作
NSString *cachePath =NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask,YES)[0];
NSString *filePath = [cachePathstringByAppendingPathComponent:@"t_user.sqlite"];
-3处理多线程安全问题,提供一个多线程实例,拼接路径
queue = [FMDatabaseQueuedatabaseQueueWithPath:filePath];
-4进行线程的操作
[queueinDatabase:^(FMDatabase *db) {
if ([dbexecuteUpdate:@"create table if not exists t_user (id integer primary key autoincrement,name varchar(255),age varchar(255));"]) {
NSLog(@"成功创建");
}else{
NSLog(@"创建失败");
}
}];
4.操作
-1.增
[queueinDatabase:^(FMDatabase *db) {
if ([ dbexecuteUpdate:@"insert into t_user (name,age) values (?,?)",@"lipp",@(500)]) {
NSLog(@"添加成功");
}else{
NSLog(@"添加失败");
}
}];
-2.删
[queueinDatabase:^(FMDatabase *db) {
-2.0开启事务
[db beginTransaction];
if ([ dbexecuteUpdate:@"delete from t_user where id = ?",@1]) {
NSLog(@"删除成功");
}else{
NSLog(@"删除失败");
-2.1还原,如果删除失败的情况
[dbrollback];
}
-2.2如果进行多个删除,多个操作时候进行的操作,全部操作完成在去提交
[dbcommit];
}];
-3.改
[queueinDatabase:^(FMDatabase *db) {
if ([dbexecuteUpdate:@"update t_user set name = ? where id = ?;",@"ppben",@1]) {
NSLog(@"修改成功");
}
else {
NSLog(@"修改失败");
}
}];
-4.查
[queueinDatabase:^(FMDatabase *db) {
FMResultSet *result = [db executeQuery:@"select * from t_user"];
while ([result next]) {
NSString *name = [result stringForColumn:@"name"];
NSString *age = [result stringForColumn:@"age"];
NSLog(@"%@----%@",name,age);
}
}];
- 数据库操作(fmdb多线程操作)
- 数据库操作(使用FMDB)
- 数据库操作(使用FMDB)
- 数据库操作(使用FMDB)
- FMDB 数据库简单操作
- 数据库操作(使用FMDB)
- 数据库操作 FMDB
- 数据库操作(使用FMDB)
- 数据库操作(使用FMDB)
- 数据库操作FMDB
- FMDB操作数据库
- 数据库操作(使用FMDB)
- 数据库操作(使用FMDB)
- 数据库操作(使用FMDB)
- 数据库操作(使用FMDB)
- 217,FMDB数据库操作
- 使用FMDB操作数据库
- 数据库操作(使用FMDB)
- 黑马程序员——Java语言介绍+环境搭建+经典Hello World
- iOS runtime 根据类名获取属性的类型和名称
- 白盒测试的一些方法
- makefile文件的编写
- UVa1709——Amalgamated Artichokes
- 数据库操作(fmdb多线程操作)
- java 备忘录界面设计--心路历程
- JDBC MySQL 连接符 附加属性 (编码及别名处理)
- 欢迎使用CSDN-markdown编辑器
- 代码
- CAD闭合多边形转为ARCGIS中面要素,遇到的几个问题
- MATLAB工具箱
- 用C程序画爱心~
- Asp.net中request.QueryString与request.Params的区别