FMDB操作详解

/*这是关于IOS中FMDB第三方库的操作流程,所以很有必要好好学习下,毕竟一个APP
无非就是逻辑,数据,界面三中,所以数据库的掌握也是很有必要的!

接下来我们就来好好学习下这个的使用方法!
这里本人直接写个demo来进行测试!

//首先是要导入这个第三方的文件,下载地址:https://github.com/ccgus/fmdb  
同时需要添加 libsqlite3.0dylib至工程

接下来就可以开始啦!
分别做打开,创建表,查询,插入,修改的操作

static FMDatabase *db;
static NSString *sqlname;

+(BOOL)openDataBase:(NSString *)name
{
	//首先打开Document的文件夹
	NSArray *documentPath = NSSearchPathForDirectoriesInDomians(NSDocumentDirectory,
																	NSUserDomainMask,
																	YES);
	NSString path = [[documentPath objectAtIndex:0] stringByAppendingPathComponent:name];
	//判断文件是否存在
	if(![[NSFileManager defaultManager] fileExistsAtPath:path])	
	{
		[[NSFileManager defaultManager] creatFileAtPath:path content:nil attributes:nil];
	}
	db = [FMDataBase databaseWithPath:path];
	sqlname = name;
	BOOL res = [db open];
	if(res == NO)
	{
		NSLog(@"open error");
		return NO;
	}
	return YES;																
}

+(BOOL)creatTable:(NSString *)sql
{
	if(!db){
		 [self openDataBase:sqlname];
	}

	BOOL res = [db open];
	if(res == NO)
	{
		NSLog(@"open error");
		return NO;
	}

	res = [db executeUpdate:sql];
	if(res == NO)
	{
		NSLog(@"creat error");
		[db close];
		return NO;
	}
	if([db hasError]){
		[db close];
		return NO;
	}
	else 
	{
		return YES;
	}

	return YES;
}

+(BOOL)update:(NSString *)sql
{
	if(!db)
	{
		[self openDataBase:sqlname];
	}
	BOOL res = [db open];
	if(res == NO)
	{
		NSLog(@"open error");
		return NO;
	}

	res = [db executeUpdate:sql];
	if(res == NO)
	{
		NSLog(@"update error");
		[db close];
		return NO;
	}

	if([db hasError])
	{
		reutrn NO;
	}

	return YES;

}

+(FMResultSet*)select:(NSString *)sql
{
	if(!db)
	{
		[self openDataBase:sqlname];
	}
	BOOL res = [db open];
	if(res == NO)
	{
		NSLog(@"open error");
		return NO;
	}

	FMResultSet *set;
	set =  = [db executeQuery:sql];
	if([db hasError])
	{
		NSLor(@"query error");
		[db close];
		return nil;
	}
	return set;

}

+(void)closeDataBase{
	[db close];
}


//然后我们可以通过这个类来实现我们的相关操作
在使用的过程中首先我们要创建数据库

Fqlite openDataBase:[NSString stringWithFormat:@"%@",userId];

然后就是创建表
NSString *sql = @"CREATE TABLE [test] ([_id] INTEGER NOT NULL PRIMARY KEY AUTOINCERMENT,
										[content] TEXT,[count] INTEGER)";
[Fqlite cretaTable:sql];

//这样我们就创建了一张表啦!接下来我们可以进行查询,插入,修改的操作啦!

//插入操作
NSString *insertSql = [NSString stringWithFormat:@"INSERT INTO test(content,count) VALUES('%@','%d')",@"hello",int i = 3];
[Fqlite update:insertSql];

//修改操作
NSString *updateSql = [NSString stringWithFormat:@"UPDATE test SET content = '%@',count = '%d' WHERE _id='%d",@"test",4,1];
[Fqlite update:updateSql];

//查询操作

NSString *sql = @"SELECT * FORM test";
FMResultSet *set  = [Fqlite select:sql];
while([set next])
{
	int id = [set intForColumnIndex:0];
	NSString *content = [set stringForColmnIndex:1];
	int count = [set intForColumnIndex:2];
}



*/



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值