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);
    }

  • 相关阅读:
    关于接口、抽象、普通类之间的选择
    对象与运行时内存
    maven
    ClassLoader
    股票数据调用示例代码php
    猫否股票策略十三篇-1.选股不重要,重在选时
    老枪的59条制胜法则
    今日趁利好出货又套人无数
    判断趋势的最佳指标---趋势大师(源码、主图、附图、说明、无未来、通达信)
    泰禾集团最近走势诡异,小心被机构戏耍了
  • 原文地址:https://www.cnblogs.com/aiwz/p/6154067.html
Copyright © 2011-2022 走看看