美文网首页
2018-07-11 FMDB使用

2018-07-11 FMDB使用

作者: 北你妹的风 | 来源:发表于2018-07-16 16:09 被阅读14次

    之前都是直接用sqlite 的C语言API,感觉也没有什么不好用的,就是封装性不好,不能重用;CoreData也用过,感觉太笨重,真心不好用。

    从今天开始学下FMDB和WCDB.

    一、简单说明

    FMDB是iOS平台的SQLite数据库框架,它以OC的方式封装了 sqlite 的C 语言API。

    它的优点有:

    1、更加面向对象,省去了大量的冗余的C语言代码

    2、相比CoreData,更加轻量级和灵活

    3、提供了多线程安全的数据库操作方法,有效地防止数据混乱

    二、核心类

    1、FMDatabase

    数据库对象,一个FMDatabase对象就代表一个独立的sqlite数据库,可以用来执行各种sql语句。

    2、FMResultSet

    结果集,sql语句的执行结果

    3、FMDatabaseQueue

    线程安全的队列,用于在多线程环境中执行查询或修改操作

    三、增删改查

    在增删改查之前,要先创建表结构。

    在FMDB中,除了查询以外,所有的操作都是update,包括建表。

    打开数据库:

     NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];

     NSString *dbPath = [docPath stringByAppendingString:@"/test.db"];

     FMDataBase *db = [FMDatabase databaseWithPath:dbPath];

    1、创建表结构:

       if([db open]) {

            NSString *sql = @" create table if not exists student('ID' INTEGER PRIMARY KEY AUTOINCREMENT,'name' TEXT NOT NULL,'phone' TEXT NOT NULL,'score' INTEGER NOT NULL)";

            BOOLflag = [self.dbexecuteUpdate:sql];

            if(flag) {

                NSLog(@"create table success");

            }

       }

    2、新增

     NSString *sql = [NSString stringWithFormat:@"insert into student (name,phone,score) values (?,?,?)"];

     BOOL result = [self.db executeUpdate:sql withArgumentsInArray:@[@"lzt",@"13569874154",@(69)]];

     if(result) {

            NSLog(@"insert ok");

     }

    3、修改

    NSString *sql = [NSString stringWithFormat:@"update student set name = ?  where  id = ? "];

     BOOL result = [self.db executeUpdate:sql withArgumentsInArray:@[@"lztOK",@(2)]];

        if(result) {

            NSLog(@"update ok");

        }

    4、删除

     NSString *sql = [NSString stringWithFormat:@" delete  from student where id = ? "];

        BOOL result = [self.db executeUpdate:sql withArgumentsInArray:@[@(1)]];

        if(result) {

              NSLog(@"delete  ok");

        }

    最后,要记得关闭数据库 [db close]

    相关文章

      网友评论

          本文标题:2018-07-11 FMDB使用

          本文链接:https://www.haomeiwen.com/subject/uzivpftx.html