总结

iOS_FMDB

2018-09-05  本文已影响0人  自律_自强_通达
  1. 打开数据库:
    通过指定SQLite数据库文件路径来创建FMDatabase对象
// 1.打开数据库
/**
* @param: 1 数据库的路径(如果没有数据库,则新建数据库)2 @“” 会在临时目录创建一个空的数据库当FMDatabase连接关闭时,数据库文件也被删除 3 nil 会创建一个内存中临时数据库,当FMDatabase连接关闭时,数据库会被销毁
*/
FMDatabase *db = [FMDatabase databaseWithPath:path];
if ([db open])  { 
    NSLog(@"打开成功!");
}
  1. 执行更新:
// FMDB更新方法
-(BOOL)executeUpdate:(NSString)sql, ...
-(BOOL)executeUpdateWithFormat:(NSString)format, ...
-(BOOL)executeUpdate:(NSString*)sql withArgumentsInArray:(NSArray *)arguments
// 2.执行更新
[db executeUpdate:@"UPDATE t_student SET age = ? WHERE name = ?;", @20, @"Jack"]
  1. 执行查询
// 查询方法
- (FMResultSet *)executeQuery:(NSString*)sql, ...
- (FMResultSet *)executeQueryWithFormat:(NSString*)format, ...
- (FMResultSet *)executeQuery:(NSString *)sql withArgumentsInArray:(NSArray *)arguments
// 查询数据
FMresultSet *rs = [db executeQuery:@"SELECT * FROM t_student"]

// 遍历结果集
while ([rs next]) {
    NSString *name = [rs stringForColumn:@"name"];
    int age = [rs intForColumn:@"age"];
    double score = [rs doubleForColumn:@"score"];
}
  1. 关闭数据库
[self.db close];
FMDatabaseQueue *queue = [FMDatabaseQueue databaseQueueWithPath:path];
// 简单使用
[queue inDatabase:^(FMDataBase *db){
    // 插入数据
    [db executeUpdate:@"INSERT INTO t_student(names) VALUES (?)",@"jack"];
    // 查询数据
    [db executeQuery:@"select * from t_student"];
}];
// 使用事务
[queue inTransaction:^(FMDatabase *db,BOOL *rollback){
    // 插入数据
    [db executeUpdate:@"INSERT INTO t_student(names) VALUES (?)",@"jack"];
    // 查询数据
    [db executeQuery:@"select * from t_student"];    
}];

本文参考了(https://www.jianshu.com/p/4eb22deadba6

上一篇 下一篇

猜你喜欢

热点阅读