FMDB的介绍

FMDB的介绍_第1张图片
FMDB

一、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条

具体的代码请到github下载:FMDB的demo

你可能感兴趣的:(FMDB的介绍)