一、简介

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

iOS 数据持久化-- FMDB相关推荐

  1. 【iOS数据持久化】Plist使用

    iOS数据持久化Plist使用 iOS 端数据持久化就是把数据保存在本地,常用于基本信息储存,应用配置,应用支持数据源,网络请求缓存等.主要有如下几种方式: 方式 介绍 特点 Plist文件 属性列表 ...

  2. 【iOS数据持久化】数据库(SQLite.swift)和FMDB

    数据持久化之SQLite数据库(SQLite.swift使用) 一.     简介 SQLite是一款轻型的嵌入式数据库,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就足够了.它的处理速 ...

  3. iOS - 数据持久化之 FMDB 的使用

    前言 上一篇文章「iOS - 使用 SQLite 数据库实现数据持久化」,介绍了如何使用 sqlite3 操作 SQLite 数据库实现增删改查.但是在代码编写的过程中,我们发现 sqlite3 需要 ...

  4. iOS 数据持久化方式 - 归档 反归档

    所谓归档:将复杂对象转化为NSData类型数据(复杂-->归档-->NSData--->WriteToFile) 注意:归档是将对象转化为数据字节,以文件的形式存储在磁盘上, 所谓反 ...

  5. iOS数据持久化方案

    技术由来 数据持久化是iOS开发中必不可少的一项技能.因为开发中我们多会涉及到用户信息存储.文件存储.应用内容缓存中的一个或者几个场景. 数据持久化的几种方式 NSUserDefaults plist ...

  6. iOS 数据持久化 -- Core Data (2)

    2019独角兽企业重金招聘Python工程师标准>>> 1.Core Data 是数据持久化存储的最佳方式 2.数据最终的存储类型可以是:SQLite数据库,XML,二进制,内存里, ...

  7. 【iOS数据持久化】偏好设置(UserDefaults)

    官网文档:NSUserDufaultClass Reference 关于偏好设置:AboutPreferences and Settings UserDefualts是一种便利的,通过key-valu ...

  8. 【iOS数据持久化】归档解档(NSKeyedArchiver/ NSKeyedUnarchiver)

    简介 归档(Archive)也称为序列化(serialization),把对象转化为字节码,以文件的形式存储在磁盘上,只要遵循了NSCoding协议的对象都可以实现归档和解档(大部分foundatio ...

  9. iOS 数据持久化 NSUserDefault

    每一个应用都有一个 NSUserDefaults 实例,向 NSUserDefaults 类发送 standardUserDefaults 消息可以得到该实例. NSUserDefaults 实例类似 ...

最新文章

  1. python的unittest測试框架的扩展浅谈
  2. JDK源码解析-Collection.iterator方法
  3. python ftp模块_python中的FTP文件模块
  4. 博弈论初步(SG函数)
  5. 朝阳工程技术学校计算机应用,超8成高职院校开设“计算机应用技术专业”
  6. C# WinForm 判断程序是否已经在运行,且只允许运行一个实例
  7. 用ntsd -c q -p PID 杀进程
  8. python代替按键精灵 游戏内失灵_python游戏脚本之调用按键精灵插件模拟输入(二)...
  9. 调用企业微信接口注意事项
  10. 批量将多个 txt 记事本文件合并成一个独立的记事本文件
  11. Dorado7 首页菜单CSS调整
  12. java:123321是一个非常特殊的数,它从左边读和从右边读是一样的。   输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。
  13. 嵌入式的苦逼从何而来
  14. 钉钉如何实现原笔迹手写签批
  15. 机器学习 入门详细解析(二)决策树、随机森林
  16. 程序员约架事件中,薛非到底是因为不会用Github还是不会写Tokenizer而没有应战?...
  17. U盘文件变快捷方式--解决办法
  18. Web Workers简要概述
  19. 数据库根据身份证号码判别性别
  20. (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354

热门文章

  1. python实现k均值算法_python实现kMeans算法
  2. Oracle中计算两个时间的时间差:
  3. dtm文件生成等高线 lisp_南方cass如何用图面高程点生成等高线
  4. 看这玩意复习你还会挂科?《网络原理篇》
  5. mysql导入source数据库sql的C++实现和封装
  6. 使用百度大脑,导入aip以及相应的库文件报错问题
  7. 22天养成好习惯,一年后脱胎换骨!
  8. AMD OpenCL 大学课程
  9. 成功男士的健康心理特征
  10. 360——新式的流氓