FMDB使用事项

FMDB使用事项

1.创建数据库

#import "FMDatabase.h"

引用 FMDB文件,我下载的这个FMDB中所有的引用已经集成在这一个文件中了

NSString * documentPath =[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0];

首先获取document文件夹位置,据说是应为iOS只有这个文件才能放东西,我随便写的绝对路径貌似没有用

NSString * realPath = [documentPath stringByAppendingPathComponent:@"test.sqlite"];

这里设定数据库的名字

 FMDatabase * db = [FMDatabase databaseWithPath:realPath];

这个时候,就已经实例化了一个DB,也相当于拿到了数据库的操作对象
这里提醒下各位,记住这个地址,防止后面应为数据库的名称和路径导致操作失败,

2.打开数据库

[db open]
NSString * sqlimage = @"create table Image (ID int primary key AUTO_INCREMENT ,ReadingDetailID varchar(200) null , photo varchar(200) null ) ";
BOOL res = [db executeUpdate:sql];

3.操作数据库

执行创建表单操作,使用 executeUpdate这个函数,这个函数是用来更新数据库的,包括插入和更新,返回BOOL类型,很便于操作

NSString * arrsql =[NSString stringWithFormat: @"select * from MeterRead where ReadingDetailID = %@ ",self.arrDown[i][@"ReadingDetailID"]];
FMResultSet * rs = [db executeQuery:arrsql];
使用executeQuery用来查询,返回的是一个FMResultSet ,
     while ([rs next]) {
     NSDictionary * meterdic = @{@"ReadingDetailID":[rs stringForColumn:@"ReadingDetailID"],
                                 @"UserWaterMeterCode":[rs stringForColumn:@"UserWaterMeterCode"],
                                 @"UserName":[rs stringForColumn:@"UserName"]};
     [self.arrMeterRead addObject:meterdic];
     }

大家都看到了把,这个FMResultSet自带的方法中有stringForColumn这种函数来取指定数值,如果我们需要返回的全部数据,这样是很不方便的, resultDictionary他有这种方式,直接转换字典,
//用数组arr保存一条记录转成的字典

[arr addObject:[rsnull resultDictionary]];

* intForColumn:
* longForColumn:
* longLongIntForColumn:
* boolForColumn:
* doubleForColumn:
* stringForColumn:
* dateForColumn:
* dataForColumn:
* dataNoCopyForColumn:
* UTF8StringForColumnIndex:
* objectForColumn:

将单一数据取出的其他方式,很多种数据方式
4.关闭数据库


最后

[db close];

这样所有FMDB创建的都会自动消除了。

你可能感兴趣的:(FMDB使用事项)