最后更新:2017-02-22

2017, 说到做到


一: 初识FMDB

  1. FMDB是iOS平台的SQLite数据库框架
  2. FMDB以OC的方式封装了SQLite的C语言API
  3. GitHub链接: https://github.com/ccgus/fmdb

优点:

  1. 面向对象,使用更加简单,没必要写复杂的C语言代码;
  2. 提供多线程本安全,有效地防止数据混乱;

缺点:

1.用OC对SQLite的封装,失去了C语言的跨平台性;

二: 基本使用

FMDB有三个主要的类

  • FMDatabase – 表示一个单独的SQLite数据库。 用来执行SQLite的命令。

  • FMResultSet – 表示FMDatabase执行查询后结果集

  • FMDatabaseQueue – 如果你想在多线程中执行多个查询或更新,你应该使用该类。这是线程安全的。

三: 基本操作

1. 数据库创建

创建FMDatabase对象时参数为SQLite数据库文件路径。该路径可以是以下三种之一:

  1. 文件路径。

    • 该文件路径无需真实存,如果不存在会自动创建。
  2. 空字符串(@”")。

    • 表示会在临时目录创建一个空的数据库,当FMDatabase 链接关闭时,文件也被删除。
  3. NULL.

    • 将创建一个内在数据库。同样的,当FMDatabase连接关闭时,数据会被销毁.
FMDatabase *db = [FMDatabase databaseWithPath:path];

2. 打开数据库

在和数据库交互 之前,数据库必须是打开的,如果资源或权限不足无法打开或创建数据库,都会导致打开失败。

if (![db open]) {
[db release];
return;
}

3. 执行更新

一切不是SELECT命令的命令都视为更新。

这包括

  • CREATE (创建)
  • UPDATE (更新)
  • INSERT (插入)
  • ALTER
  • COMMIT,
  • BEGIN,
  • DETACH,
  • DELETE,
  • DROP,
  • END,
  • EXPLAIN,
  • VACUUM,
  • REPLACE。
  • 。。。

-(BOOL)executeUpdate:(NSString)sql, ...
-(BOOL)executeUpdateWithFormat:(NSString)format, ...
-(BOOL)executeUpdate:(NSString)sql withArgumentsInArray:(NSArray )arguments 执行更新返回一个BOOL值。YES表示执行成功,NO表示失败 执行错误,可以调用 -lastErrorMessage 和 -lastErrorCode方法来得到更多信息。

4.执行查询

  1. SELECT命令就是查询

    - (FMResultSet *)executeQuery:(NSString*)sql, ...
    - (FMResultSet *)executeQueryWithFormat:(NSString*)format, ...
    - (FMResultSet *)executeQuery:(NSString *)sql withArgumentsInArray:(NSArray *)arguments 成功返回 FMResultSet对象,错误返回 nil 执行错误,可以调用 -lastErrorMessage 和 -lastErrorCode方法来得到更多信息。
  2. 获取结果

    FMResultSet *s = [db executeQuery:@"SELECT * FROM myTable"];
    while ([s next]) {
    //retrieve values for each record
    }

FMResultSet 提供了很多方法来获得所需的格式的值:

```objc
intForColumn:
longForColumn:
longLongIntForColumn:
boolForColumn:
doubleForColumn:
stringForColumn:
dataForColumn:
dataNoCopyForColumn:
UTF8StringForColumnIndex:
objectForColumn:
```

你无需调用 [FMResultSet close]来关闭结果集, 当新的结果集产生,或者其数据库关闭时,会自动关闭。

5. 关闭数据库

当使用完数据库,你应该 -close 来关闭数据库连接来释放SQLite使用的资源。

 [db close];

结束

参开列表:唐巧-在iOS开发中使用FMDB

最新文章

  1. DNS资源纪录(Resource Record)介绍
  2. [Ajax系列]Ajax介绍
  3. OGNL调用静态方法和属性
  4. RadASM中文乱码问题解决方法!!
  5. Java学习一
  6. shell脚本中切换用户并执行命令
  7. TCSRM5961000
  8. Asp.Net Remove Unwanted Headers
  9. 初级AD域渗透系列
  10. linux目录结构解析
  11. PHP array_map()
  12. duilib基本流程
  13. 万水千山ABP - 弹出对话框禁用回车
  14. SQL Server 取日期时间格式 日期与字符串之间的转换
  15. 关于使用spring版本4.1.6注解@Import报错
  16. webstorm里用 DB browser 连接 mysql SQlite Oracle数据库
  17. day02 格式化字符串
  18. Notepad++编写运行python程序
  19. 函数式语言简介(functional language)
  20. nginx屏蔽某段IP、某个国家的IP

热门文章

  1. Java第五周作业+总结
  2. JavaDoc注释
  3. CentOS8 下 Redis5.0.7 哨兵Sentinel 模式配置指南
  4. Dubbo 序列化协议 5 连问,你接得住不?
  5. python爬取b站排行榜
  6. PHP排序函数sort、rsort、asort、arsort、ksort、krsort
  7. Proxy does not work using sudo in Debian
  8. neo4j源码分析1-编译打包启动
  9. javascript中跨域问题的解决方法汇总
  10. layoutSubviews何时调用的问题(原文:http://www.cnblogs.com/pengyingh/articles/2417211.html)