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];
}



*/



你可能感兴趣的:(ios,FMDB)