iOS - FMDB数据库的使用

下面不废话了直接上代码😄
/* 首先把FMDB拖入到工程中,需要我们把sqlite3这个库导入工程,(若是非ARC的工程,我们可以直接导入就好) 数据库--》操作大量的有规律的数据 FMDB是别人在系统数据库的繁琐的基础上给又封装了一下,供我们使用,--》相比于系统数据库更简单,好用 FMDatabase 主要是提供操作时用得sql语句 FMDatabaseAdditions.h 只要是负责多线程或是查询时更新时的操作 FMDBResultSet 结果集,对数据库的操作,返回结果 */ //创建一个FMDatabase类的对象,这个对象用来操作数据库 db = [[FMDatabase alloc] initWithPath:[NSHomeDirectory() stringByAppendingPathComponent:@"Documents/pop.sqlite"]]; //打开数据库--》指的是打开时有可能会出现异常,若出现异常就关闭,若没有出现异常就直接执行下面的代码 if (![db open]) { //关闭数据库 [db close]; return; } //对数据库中表的操作,添加,删除,修改 //看表是不是在数据库 ---》执行表的操作,导入FMDatabaseAdditions.h if (![db tableExists:@"people"]) { [db executeUpdate:@"CREATE TABLE people (peopleid INTEGER PRIMARY KEY,peoplename TEXT,peopleage INTEGER)"]; } //关闭数据库 [db close ]; //插入 //打开数据库 if (![db open]) { [db close];
return; } //设置缓存---》提高效率 [db setShouldCacheStatements:YES]; //执行插入的操作 [NSNumber numberWithInt:22];把整数类型转换成NSNumber对象类型 [db executeUpdate:@"INSERT INTO people(peoplename,peopleage) VALUES (?,?)",@"白童童",[NSNumber numberWithInt:22]]; //关闭数据库 [db close]; //删除 要知道哪一行,-->上面去 if (![db open]) { [db close]; return; } BOOL isSuccess = [db executeUpdate:@"DELETE FROM people WHERE peopleid = ?",[NSNumber numberWithInt:_peopleId]]; //检测sql语句是否书写正确--》1时正确 0相反 NSLog(@"9------%d",isSuccess); [db close]; //更新 //打开数据库 if (![db open]) { [db close];
return; } //设置缓存 [db setShouldCacheStatements:YES]; //执行更新 [db executeUpdate:@"UPDATE people SET peoplename = ?WHERE peopleid=?",@"史冬峰",[NSNumber numberWithInt:_peopleId]]; [db close]; //更新UI //打开数据库 if (![db open]) { [db close]; return; } //设置缓存 [db setShouldCacheStatements:YES]; //执行查询 //添加,删除,修改,都是对数据库中的表进行操作,查询是把数据库中的数据给读取出来(结果集) FMResultSet *rs = [db executeQuery:@"SELECT *FROM people"]; //去创建一个数组出来用来保存读取出来的数据 //移除数组中已经添加过的数据,想要出现一次一个 [peopleArray removeAllObjects]; //遍历结果集,每次只读取一条数据 while ([rs next]) { //从结果集中把刚才读取的数据取出来,--》把取出的数据信息给封装一个people类--》创建people类 ZYPeople *p = [[ZYPeople alloc] init];
//根据数据在数据库中的类型来取(字段--字段类型)--》去给people描述几个相应的属性 p.pID = [rs intForColumn:@"peopleid"]; p.pName = [rs stringForColumn:@"peoplename"]; p.pAge = [rs intForColumn:@"peopleage"]; [peopleArray addObject:p]; } //关闭结果集 [rs close]; //关闭数据库 [db close]; [。。。 reloadData];

 

posted @ 2016-10-12 10:19  M·emor·Y  阅读(526)  评论(0编辑  收藏  举报