博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS 数据持久化-- FMDB
阅读量:6720 次
发布时间:2019-06-25

本文共 1523 字,大约阅读时间需要 5 分钟。

一、简介

    1.什么是FMDB

  FMDB是iOS平台的SQLite数据库框架

  FMDB以OC的方式封装了SQLite的C语言API

 

  2.FMDB的优点

  使用起来更加面向对象,省去了很多麻烦、冗余的C语言代码

  对比苹果自带的Core Data框架,更加轻量级和灵活

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

  

  3.FMDB的github地址

  https://github.com/ccgus/fmdb

 二、核心类

  FMDB主要的三个类:

  (1)FMDatabase

    一个FMDatabase对象就代表一个单独的SQLite数据库

    用来执行SQL语句

 

  (2)FMResultSet

    使用FMDatabase执行查询后的结果集

 

  (3)FMDatabaseQueue

    用于在多线程中执行多个查询或更新,它是线程安全的

 

三、打开数据库

通过指定SQLite数据库文件路径来创建FMDatabase对象

FMDatabase *db = [FMDatabase databaseWithPath:path];

if (![db open]) {

    NSLog(@"数据库打开失败!");

}

 

文件路径有三种情况

(1)具体文件路径

  如果不存在会自动创建

 

(2)空字符串@""

  会在临时目录创建一个空的数据库

  当FMDatabase连接关闭时,数据库文件也被删除

 

(3)nil

  会创建一个内存中临时数据库,当FMDatabase连接关闭时,数据库会被销毁

 

四、执行更新

在FMDB中,除查询以外的所有操作,都称为“更新”

create、drop、insert、update、delete等

 

使用executeUpdate:方法执行更新

- (BOOL)executeUpdate:(NSString*)sql, ...

- (BOOL)executeUpdateWithFormat:(NSString*)format, ...

- (BOOL)executeUpdate:(NSString*)sql withArgumentsInArray:(NSArray *)arguments

 

示例

[db executeUpdate:@"UPDATE t_student SET age = ? WHERE name = ?;", @20, @"Jack"]

 

五、执行查询

查询方法

- (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"];

}

转载于:https://www.cnblogs.com/huadeng/p/7081372.html

你可能感兴趣的文章
Linux系统管理——触发挂载篇
查看>>
php下载时修改文件名
查看>>
sass学习笔记(四):混合宏VS继承VS占位符
查看>>
位段的简单使用
查看>>
兼容IE和Firefox的event对象||event 兼容总结
查看>>
材质ID随机生成器使用教程
查看>>
Linux 磁盘管理
查看>>
三个金人
查看>>
习惯人生
查看>>
VMware workstation -- 实验环境搭建系列(二) 使用 Custom 方式创建一个新虚拟机
查看>>
mysql还原所有库
查看>>
我的友情链接
查看>>
Vue.js 2.0 学习重点记录
查看>>
iOS延时执行的一些方式
查看>>
使用jQuery清空file文件域的解决方案
查看>>
Spring Boot Task实现定时任务
查看>>
CentOS 7 搭建zabbix3.0
查看>>
mysql主从简易配置
查看>>
7.5. 优化MySQL服务器
查看>>
CentOS-6.5安装配置SVN
查看>>