FMDB 数据库的使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FMDB 数据库的使用相关的知识,希望对你有一定的参考价值。

FMDB 数据库 和 SQLite3 非常相似  但要比 SQLite3 省好多代码  没有了各种绑定 直接引用 FMDB 的方法就可以简单解决
首先 FMDB 他还是一个单例类  因为要被其他类 使用
FMDB 还是由 打开数据库  创建数据名   添加数据   更新数据   删除数据  查询数据 几部分内容
在这里 model 的属性除了 image 外都是 NSString 类型  image 是 NSData 类型 所以在下面的查询处会有一个转换方式
打开数据库: 先 获取路径  在调用  databaseWithPath 这个方法 代码如下:
NSString *str = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject] stringByAppendingPathComponent:sqliteName];
db = [FMDatabase databaseWithPath:str];
 
创建字段: 先打开数据库 再添加所有要添加的数据字段 然后调用  executeUpdate:方法
NSString *str = [NSString stringWithFormat:@"create table if not exists %@ (ID integer primary key autoincrement, name text, gender text, age text, image blob, myID text)", tableName];
BOOL flag = [db executeUpdate:str];
 
插入数据: 先打开数据库 再插入所要添加的数据(一定要注意他们的先后顺序) 然后调用  executeUpdate:方法
NSString *str = [NSString stringWithFormat:@"insert into %@ (name, gender, age, image, myID) values (?, ?, ?, ?, ?)", tableName];
BOOL flag = [db executeUpdate:str, name, gender, age, image, myID];
 
更新数据: 先打开数据库 再添加需要更新的所有字段 然后调用 executeUpdate:方法
NSString *str = [NSString stringWithFormat:@"update %@ set name = ?, gender = ?, age = ?, image = ?, myID = ? where myID = ?", tableName];
BOOL flag = [db executeUpdate:str,name, gender, age, image, myID, forMyID];
 
删除数据: 先打开数据库 再删除数据要根据字段中唯一的一个字段值进行删除 然后调用  executeUpdate方法
NSString *str = [NSString stringWithFormat:@"delete from %@ where myID = ?", tableName];
BOOL flag = [db executeUpdate:str,myID];
 
查询所有数据: 先打开数据库 根据表明进行查询数据 然后调用  executeQuery:方法
NSString *str = [NSString stringWithFormat:@"select * from %@", tableName];
Model *model = [[Model alloc] init];
FMResultSet *result = [db executeQuery:str];
NSMutableArray *array = [NSMutableArray array];
while ([result next]) {
     model.name = [result stringForColumn:@"name"];
     model.gender = [result stringForColumn:@"gender"];
     model.age = [result stringForColumn:@"age"];
     // 将 NSString 转换成 NSData 类型
     model.image = [[result stringForColumn:@"image"] dataUsingEncoding:NSUTF8StringEncoding];
     model.myID = [result stringForColumn:@"myID"];
     [array addObject:model];
}
最后 在需要的地方调用
 
小结:
创建 插入 跟新  删除 基本上相似 sql语句方法中有几个参数就有几个字段 那就添加几个 执行语句基本上是一样的
查询所有的结果是一个个的 model 所以用数组装起来 返回数组 执行语句和上面的不同 executeQuery:
若是查询一个 返回的是一个model
 
 
 
 
 
 

以上是关于FMDB 数据库的使用的主要内容,如果未能解决你的问题,请参考以下文章

iOS开发之--FMDB的使用

使用多线程读取 FMDB 数据库

FMDB 使用方法

iOS 数据库开源框架FMDB的快速入门与使用

FMDB使用的数据库的三种形式

使用 Swift + FMDB 打开和关闭数据库