`

FMDB详解(转载)

 
阅读更多
摘要 IOS操作数据库,SQLite3和coredata是两个非常好的选择,但是对于我们这些掌握了其他数据库语言的人来说,使用这两中操作都会觉得不方便,SQLite3使用起来太复杂了,而使用coredata的时候却封装太死了,我们需要自己些自己的数据库语句,这时候,FMDB就是一个非常不错的选择!

 

什么是FMDB 
FMDB是iOS平台的SQLite数据库框架 
FMDB以OC的方式封装了SQLite的C语言API

FMDB的优点 
使用起来更加面向对象,省去了很多麻烦、冗余的C语言代码 
对比苹果自带的Core Data框架,更加轻量级和灵活 
提供了多线程安全的数据库操作方法,有效地防止数据混乱

FMDB的github地址 
https://github.com/ccgus/fmdb


废话少说,下面来介绍FMDB的使用吧 
FMDB有三个主要的类 
FMDatabase 
一个FMDatabase对象就代表一个单独的SQLite数据库 
用来执行SQL语句

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

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


下面来打开数据库 ,一般都需要数据库的路径地址:path 
通过指定SQLite数据库文件路径来创建FMDatabase对象 
FMDatabase *db = [FMDatabase databaseWithPath:path]; 
if (![db open]) {

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

}

path文件路径有三种情况 
1,具体文件路径 
如果不存在会自动创建 
2,空字符串@“” 
会在临时目录创建一个空的数据库 
当FMDatabase连接关闭时,数据库文件也被删除 
3,nil 
会创建一个内存中临时数据库,当FMDatabase连接关闭时,数据库会被销毁


CURD操作: 
在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"];

}


多线程管理FMDB 
FMDatabase这个类是线程不安全的,如果在多个线程中同时使用一个FMDatabase实例,会造成数据混乱等问题

为了保证线程安全,FMDB提供方便快捷的FMDatabaseQueue类

FMDatabaseQueue的创建 
FMDatabaseQueue *queue = [FMDatabaseQueue databaseQueueWithPath:path];

简单使用 
[queue inDatabase:^(FMDatabase *db) {

[db executeUpdate:@"INSERT INTO t_student(name) VALUES (?)", @"Jack"];
[db executeUpdate:@"INSERT INTO t_student(name) VALUES (?)", @"Rose"];
[db executeUpdate:@"INSERT INTO t_student(name) VALUES (?)", @"Jim"];

FMResultSet *rs = [db executeQuery:@"select * from t_student"];
while ([rs next]) {
    // …
}

}];

使用事务 
[queue inTransaction:^(FMDatabase db, BOOL rollback) {

[db executeUpdate:@"INSERT INTO t_student(name) VALUES (?)", @"Jack"];
[db executeUpdate:@"INSERT INTO t_student(name) VALUES (?)", @"Rose"];
[db executeUpdate:@"INSERT INTO t_student(name) VALUES (?)", @"Jim"];

FMResultSet *rs = [db executeQuery:@"select * from t_student"];
while ([rs next]) {
    // …
}

}];

事务回滚 
*rollback = YES;

当然,以上都是个人学习FMDB总结出来的,希望对读者有所帮助……

分享到:
评论

相关推荐

    ios 数据库 (FMDB使用)

    **iOS 数据库与 FMDB 使用详解** 在 iOS 开发中,数据存储是应用程序不可或缺的一部分,SQLite 作为一种轻量级的数据库,常被用于存储非结构化的数据。而 FMDB 是一个 Objective-C 的 SQLite 库,它提供了一种简单...

    FMDB库和配置

    FMDB库是iOS平台上一个非常流行的SQLite数据库管理工具,它是由GitHub上的Zee Zide开源的。这个库为Objective-C开发者提供了一套简单易用的API,使得在iOS应用中操作SQLite数据库变得轻而易举。FMDB不仅封装了SQLite...

    IOS 第三方FMDB包

    **iOS第三方数据库FMDB详解** 在iOS应用开发中,数据管理是不可或缺的一部分,尤其是在需要进行本地数据持久化存储时。FMDB就是一款优秀的第三方数据库管理库,它为iOS应用程序提供了SQLite数据库的简单Objective-C...

    数据库第三方FMDB

    FMDB是iOS开发中常用的第三方数据库管理库,它是基于SQLite的一个Objective-C封装,极大地简化了在iOS应用中使用SQLite数据库的操作。在这个项目中,你只需将FMDB文件夹直接拖入你的工程,然后引入相关头文件,即可...

    iosFMDB开发的通讯录

    本项目“iosFMDB开发的通讯录”就是利用FMDB这一强大的SQLite数据库管理库,实现了一个功能丰富的手机通讯录应用。FMDB是Objective-C编写的SQLite封装库,它使得在iOS平台上操作SQLite数据库变得简单易行。 首先,...

    fmdb的封装

    FMDB是iOS开发中常用的一个SQLite数据库管理库,它是一个Objective-C封装的SQLite库,提供了简单易用的接口来操作数据库。在这个“fmdb的封装”项目中,开发者已经对FMDB进行了更进一步的封装,使得数据库的存储、...

    fmdb-master_fmdb的操作方法_

    FMDB是iOS和macOS平台上一个非常流行的SQLite数据库管理库,它是用Objective-C编写的,为开发者提供了简单、直观的接口来操作SQLite数据库。在这个"fmdb-master"压缩包中,包含了FMDB库的源代码和其他相关文件,使得...

    IOS_fmdb.zip

    FMDB是iOS平台上的一个流行的第三方数据库管理库,它为SQLite提供了Objective-C的封装,使得开发者可以更方便、更直观地进行数据库操作。本篇文章将深入探讨FMDB的核心功能、使用方法以及其在iOS开发中的实际应用。 ...

    FMDB数据库

    FMDB是iOS开发中广泛使用的SQLite数据库管理库,它是一个Objective-C封装的SQLite库,提供了简单易用的接口,使得开发者能够轻松地进行数据存储、查询、更新和删除操作。FMDB不仅支持基本的SQL语句执行,还包含了...

    fmdb增删改查

    FMDB是iOS和macOS平台上一个非常流行的SQLite数据库管理库,它是用Objective-C编写的,提供了简单易用的API来处理SQLite数据库的各种操作,包括增、删、改、查(CRUD)等基本功能。在iOS应用开发中,FMDB通常用于...

    ios sqlite封装FMDB

    而FMDB是Objective-C的一个SQLite库,它为iOS开发者提供了一个易于使用的接口来操作SQLite数据库,极大地简化了SQLite在iOS中的使用。FMDB由GitHub上的开源项目维护,具有良好的社区支持和持续的更新。 首先,我们...

    FMDB开源库

    FMDB是iOS开发中广泛使用的SQLite数据库管理库,它是由GitHub上的知名开发者Timmahh创建的,完全开源,遵循MIT许可证。这个数据封装包极大地简化了iOS应用与SQLite数据库的交互过程,使得开发者能够更加高效、便捷地...

    使用FMDB写的demo

    **FMDB库详解** FMDB是一款非常流行的iOS和macOS平台上的SQLite数据库管理库,它是由GitHub上的SSSQLite项目发展而来的。SQLite是一款轻量级的、嵌入式的、关系型数据库,广泛应用于移动应用中,因为它不需要独立的...

    FMDB的最新代码下载

    FMDB是iOS开发中广泛使用的SQLite数据库管理库,由Cocoa社区中的知名开发者Sam Soffes维护。这个库是Objective-C编写的,提供了简洁、易用的接口来操作SQLite数据库,使得iOS应用能够轻松地进行数据存储和检索。2015...

    FMDB的自定义单例类的数据库demo

    **FMDB自定义单例类数据库Demo详解** 在iOS应用开发中,数据库是存储和管理数据的重要工具。FMDB是一个Objective-C的SQLite数据库管理库,它使得在iOS中使用SQLite数据库变得简单易行。本教程将详细介绍如何创建一...

    Swift基础之FMDB的使用Demo

    在Swift编程中,FMDB是一个流行的SQLite数据库管理库,它为iOS、macOS以及其它基于Objective-C或Swift的平台提供了SQLite数据库操作的便利接口。本教程将深入探讨如何在Swift项目中利用FMDB进行数据库操作,包括安装...

    FMDB数据库iPhone版本源码

    FMDB是iOS开发中广泛使用的SQLite数据库管理库,它是一个Objective-C封装的SQLite接口,提供了简单易用的API来操作数据库。在这个名为"FMDB数据库iPhone版本源码"的资源中,你将找到适用于iPhone应用的FMDB实现,它...

    FMDB二次封装

    FMDB是iOS开发中常用的一个SQLite数据库管理库,它提供了Objective-C接口,使得与SQLite数据库交互变得更加简单。在iOS应用中,数据存储是一项基础且重要的功能,尤其在处理大量结构化数据时,SQLite数据库因其轻量...

    数据库FMDB文件

    数据库FMDB文件是一种在iOS和macOS开发中广泛使用的SQLite数据库管理工具,它是一个Objective-C封装的SQLite库,使得在Apple平台上的数据库操作变得更加简单易用。本文将深入讲解FMDB的基本概念、主要功能以及如何在...

    ios FMDB用户登录界面

    【iOS FMDB用户登录界面】是一个使用SQLite数据库框架FMDB实现的简单用户登录示例。在iOS应用开发中,为了存储用户数据或者实现用户登录功能,开发者常常会使用数据库,而FMDB是Objective-C对SQLite数据库的一个流行...

Global site tag (gtag.js) - Google Analytics