zoukankan      html  css  js  c++  java
  • (一一四)使用FMDB操作SQLite数据库

    上节介绍了用系统自带的C语言库操作SQLite的方法,比较繁琐,使用FMDB会大幅度简化,并且是面向对象的,使用十分方便。

    使用步骤如下:

    先从github下载FMDB框架,然后把它导入工程。

    ①导入libsqlite3.0.dylib库。

    ②导入主头文件FMDatabase.h。

    ③创建数据库对象,传入路径,打开数据库,如果数据库不存在会被创建。

    NSString *sqlitePath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"test1.sqlite"];
    FMDatabase *db = [FMDatabase databaseWithPath:sqlitePath];
    [db open];
    ④查询操作使用executeQuery:方法,其他操作使用executeUpdate:方法。

    例如创建表格和插入数据都是使用Update。

    需要注意的是OC字符串以%@出现在SQL语句中不用单引号包括,否则会使得存入的数据成为?。

    // 建表
    [db executeUpdate:@"CREATE TABLE IF NOT EXISTS t_product (id integer PRIMARY KEY AUTOINCREMENT, name text NOT NULL, price real);"];
    // 插入数据
    // 注意如果使用OC字符串%@,不用单引号
    [db executeUpdateWithFormat:@"INSERT INTO t_product (name,price) values (%@,%d)",[NSString stringWithFormat:@"饮料%d",arc4random_uniform(10000)],arc4random_uniform(100)];
    ⑤查询操作通过Query,拿到结果集,结果集可以看作迭代器,调用next属性到达下一个元素,当前位置可以取出元素,如下:

    // 查询数据
    FMResultSet *set = [db executeQuery:@"SELECT * FROM t_product"];
    while (set.next) {
        NSString *name = [set stringForColumn:@"name"];
        double price = [set doubleForColumn:@"price"];
        NSLog(@"%@ %f",name,price);
    }

  • 相关阅读:
    超前进位加法器
    Xilinx ISE 12.3 LED测试程序
    位图文件(BMP)格式以及Linux下C程序实现
    SPB16.3安装系列指导
    Debian6显卡驱动安装
    深入浅出之正则表达式
    一个在台积电工作3年的工程师写给学弟学妹们的信
    Debian下解决MP3标题乱码
    ubuntu下安装usbblaster(更新)
    乘法器的Verilog HDL实现
  • 原文地址:https://www.cnblogs.com/aiwz/p/6154067.html
Copyright © 2011-2022 走看看