FMDB的介绍

简介: FMDB的介绍

image.png


一、FMDB的简单介绍


1、iOS SDK 很早就支持了 SQLite,在使用时,只需要加入 libsqlite3.dylib 依赖以及引入 sqlite3.h 头文件即可。但是,原生的 SQLite API 在使用上相当不友好,在使用时,非常不便。于是,开源社区中就出现了一系列将 SQLite API 进行封装的库,而 FMDB (https://github.com/ccgus/fmdb) 则是开源社区中的优秀者。FMDB 同时兼容 ARC 和非 ARC 工程,会自动根据工程配置来调整相关的内存管理代码。而且他提供了多线程安全的数据库操作方法,有效地防止数据混乱。


2、FMDB是将sqlite封装处理的,所以使用FMDB之前也必须导入libsqlite3.0.tbd框架


二、FMDB常用类


1、FMDatabase :  一个单一的SQLite数据库,用于执行SQL语句。

2、FMResultSet :  执行查询一个FMDatabase结果集。

3、FMDatabaseQueue :在多个线程来执行查询和更新时会使用这个类。


三、使用步骤


1、指定路径创建一个数据库,建议使用懒加载

1)如果path为@"",系统会在一个临时的目录(并不是沙盒中的temp文件,这个临时目录是系统自动分配的)自己创建一个数据库,数据库断开连接后会自动删除。
  2)如果path为nil,系统会在内存中创建一个数据库,数据库会在关闭后被销毁
 NSString *dataBasePath = [NSHomeDirectory() stringByAppendingPathComponent:@"data.sqlite"];
 db = [FMDatabase databaseWithPath:dataBasePath];//db是一个FMDatabase的全局对象

2、打开数据库,第一步创建完成以后,看不到这个数据库,只有数据库被打开过才会真的被创建出来

1) [db open]; 返回一个BOOL值,如果YES代表打开成功
  2) 如果不成功,输出错误信息 [db lastErrorMessage]

3、对表进行操作

1)在FMDB中,除查询以外的所有操作,都称为“更新”。例如,create、insert、update、delete等都采用executeUpdate来进行操作,select采用executeQuery操作,如果不成功,输出错误信息 [db lastErrorMessage]
   BOOL isSuccess = [db executeUpdate:@"INSERT INTO student(name,age) VALUES (?,?)",_nameTextFiled.text,_ageTextFiled.text]; 在sql语句后面能够直接跟参数
 2)executeUpdate方法返回一个BOOL值来表明是否操作成功。executeQuery方法返回一个FMResultSet(结果集),存放查询到的结果,如果不成功,输出错误信息 [db lastErrorMessage]
    FMResultSet *result = [db executeQuery:@"SELECT * FROM student"];
    while ([result next]) {
      //根据列名获取该行的数据
      NSString *name = [result stringForColumn:@"name"];
      int age = [result intForColumn:@"age"];
      NSLog(@"%@ %d",name,age);
    }

3、关闭数据库

[db open]; 返回一个BOOL值,如果YES代表打开成功

特别的地方:FMDB 分页查询


sqlite语句:select *from tableName limit 10,100

10:是从第十条开始

100:表示返回第十条后的100条

目录
相关文章
|
6月前
|
SQL 安全 数据库
FMDB的一些摘抄
FMDB的一些摘抄
29 1
|
存储 SQL 安全
FMDB | 实现数据的增删改查
FMDB是一个轻量级的数据库,用于将网络资源存储在本地。 项目中使用 ARC 还是 MRC,对使用 FMDB 都没有任何影响,FMDB 会在编译项目时自动匹配。 FMDB 将 SQLite API 进行了很友好的封装,使用起来非常方便。
222 0
|
数据库 数据安全/隐私保护 数据库管理
|
存储 数据安全/隐私保护 数据库管理
|
数据库 数据库管理 数据安全/隐私保护
|
SQL 安全 数据库
|
SQL 安全 数据库
|
SQL 数据库 程序员