加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

(一一四)使用FMDB操作SQLite数据库

发布时间:2020-12-12 19:41:07 所属栏目:百科 来源:网络整理
导读:上节介绍了用系统自带的C语言库操作SQLite的方法,比较繁琐,使用FMDB会大幅度简化,并且是面向对象的,使用十分方便。 使用步骤如下: 先从github下载FMDB框架,然后把它导入工程。 ①导入libsqlite3.0.dylib库。 ②导入主头文件FMDatabase.h。 ③创建数据

上节介绍了用系统自带的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);
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读